javascript = !1 :这是什么意思

javascript = !1 : what does this mean

我刚开始学习 javascript。我遵循了一些基本教程。我试图理解我找到的脚本。这个脚本在几个地方有如下内容:

var USE_CANVAS = !0;
if ("trydom" == window.location.hash || "#trydom" == window.location.hash) USE_CANVAS = !1;

我不知道这是什么意思?当我通过简单地将它输入控制台来评估这个变量时,它 returns 'true'。 我在网上找不到任何关于这种风格的参考资料。 我应该提到该脚本依赖于 underscore.js 和 d3.js,但是我个人在这两个库中没有发现任何与上面类似的东西。

我也无法解释的另一行与 "question" 和 "colon" 的使用有关,如下所示:

b.select(".y.axis").call(j)) : "pop" === a ? (c = "rMVMP", j.scale(C).tickV…

您可以忽略对 select、call 和 scale 的引用,因为这些都是 d3js 函数。 我只粘贴第二行,因为我不确定这是 'javascript' 还是完全不同的语言。但是,该文件名为 'chart.js'.

此致, 理查德.

表达式 !1 的计算结果为 false。不清楚为什么会有人写这样的代码。

? : 运算符源于 C 的遗留物。它是 "ternary" 运算符,它有点像 shorthand(以表达式形式)用于 if ... else声明。

因此

test ? whenTrue : whenFalse
testtrue(或 "truthy")时,

将计算为 whenTrue,否则为 whenFalse

在Javascript中,1是"truthy",意思是1可以表示一个布尔值true。

这意味着 1 基本上可以表示为真。同样,0是falsy,意思是false。

因此,如果某项是 !1,则它是 "not true",这意味着它是错误的。

var USE_CANVAS = !0;

本质上等同于:

var USE_CANVAS = true;

但占用更少 space 并且通常是缩小后的 JS 外观。