javascript =!1:这是什么意思

时间:2015-07-06 21:13:21

标签: javascript d3.js underscore.js

我是学习javascript的新手。我已经按照一些基本的教程了。我正在尝试理解我找到的脚本。这个脚本在几个地方有如下内容:

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

我不知道这意味着什么?当我通过简单地将它输入控制台来评估这个变量时,它返回'true'。 我在网上找不到这种风格的参考。 我应该提一下脚本依赖于underscore.js和d3.js,但是我个人在这两个库中找不到任何类似上面的内容。

我无法解释的另一条线路与“问题”和“冒号”的使用有关,如下所示:

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

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

此致 理查德。

2 个答案:

答案 0 :(得分:4)

在Javascript中,1是“truthy”,意味着1可以表示布尔值为真。

这意味着1基本上可以表示真实。同样,0是假的,意思是假。

所以如果有什么东西!1,那就是“不正确”,这意味着它是假的。

var USE_CANVAS = true;

基本上与:

相同
global 
 quiet
 nbproc 4 
 daemon
listen tcp_haproxy 172.17.4.230:5001
balance roundrobin
server server0 172.17.4.227:5001
server server1 172.17.4.228:5001
server server2 172.17.4.229:5001

但占用的空间更少,通常是JS的缩小程度。

答案 1 :(得分:0)

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

? :运算符源于C的遗留。它是“三元”运算符,它是if ... else语句的简写(表达形式)。

因此

test ? whenTrue : whenFalse
whenTruetest(或“真实”)时,

将评估为true,而whenFalse则为python -m SimpleHTTPServer 8000