gpt4 book ai didi

javascript - 在变量声明中使用条件

转载 作者:行者123 更新时间:2023-11-30 10:30:12 26 4
gpt4 key购买 nike

我正在尝试检测浏览器上的“请勿跟踪”设置...原始工作代码是:

if(navigator.doNotTrack == "yes" || navigator.doNotTrack == "1" || navigator.msDoNotTrack == "1"){
alert("true");
}else{
alert("false");
}

我正在尝试稍微重写它,我想知道如何在变量声明中使用条件?我想出了一个不起作用的片段,我想知道是否有人可以帮助我?

var DNT     = navigator.doNotTrack,
msDNT = navigator.msDoNotTrack,
DNTtrue = "yes" || "1";

if(DNT === DNTtrue || msDNT === DNTtrue){
alert("true");
}else{
alert("false");
}

最佳答案

你不能这样。表达式 "yes"|| "1" 在遇到时被评估。因此,您最终将 DNTmsDNT"yes" 进行了比较。没有办法告诉 JS 稍后评估表达式。即便如此,DNT === "yes"|| “1”DNT === ("yes"|| "1") 也不会产生预期的结果。

这是一个替代解决方案,它只是测试 DNTmsDNT 的值是否存在是对象中的属性:

var DNTtrue = {"yes": true, "1": true};

if (DNTtrue[DNT] || DNTtrue[msDNT]) {
// ...
}

如果 DNTmsDNT 的值不同于 "yes""1",则 DNTtrue[...] 尝试访问一个不存在的属性,这将导致 undefined(一个虚假值)。

关于javascript - 在变量声明中使用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com