javascript的问题,叹号是什么意思

JavaScript015

javascript的问题,叹号是什么意思,第1张

<script>

alert(!!0>1)

</script>

返回是false,!0>1返回是true再加个!就是false了.两个感叹号表示非非,跟没有感叹号的效果一样.

照你的题目看a.compareDocumentPosition(b) &16可能是个数值,而又想返回true和false,而0在boolean里面表示false,其余的表示为true那么如果a.compareDocumentPosition(b) &16=1,加两个双引号就返回true,如果为0就返回false.

&作为逻辑操作符时:

表达式1&表达式2:表达式1不成立,表达式2也执行

&作为位操作符时,把数字转换为二进制再做位运算,例如6&11,6的二进制为110,11的二进制为1011,那么0110&1011=0010,结果为2(1&1=1,1&0=0,0&0=0)

分号是为了和前面的代码隔开,js可以用换行分隔代码,但是合并压缩多个js文件之后,换行符一般会被删掉,所以连在一起可能会出错,加上分号就保险了。

你看到的感叹号一般是在压缩过的js文件里面,因为在匿名函数调用的时候,通常我们都是用:

(function(){})()

的形式,但也可以使用另一种形式:!function(){}() 前面的!号可以换成-+~等等一元操作符,从而省下了1字节。

1、应用场景:判断一个对象是否存在

假设有这样一个json对象:

2、通过!或!!把各种类型转换成bool类型的惯例

2.1、对null的"非"返回true

2.2、对undefined的"非"返回true

2.3、对空字符串的"非"返回true

2.4、对非零整型的"非"返回false

2.5、对0的"非"返回true

2.6、对字符串的"非"返回false

2.7、对数组的"非"返回false