关于jquery:什么是!!

What is !! in javascript?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What does the !! operator (double exclamation point) mean in JavaScript?

1
$("#imjavascript").attr('checked', !!$('#mainCheck').attr('checked'));

怎么办!是吗?


它是一个双重否定或双重爆炸,正如一些人所说(可能也有可能是其他名字),它获取属性并将其转换为布尔值。第一个!取该值的倒数,得到一个布尔值,然后第二个取该值的倒数,得到一个布尔值,它是原始值的true/false表示,而不是原始值的倒数。


它是一种惯用的类型方法,将布尔可转换的非布尔类型更改为实际的布尔类型。例如,0是数字类型,但也被认为是等同于布尔值"false"的真值。否定是一种渐开运算(即它本身反转),因此通过使用双重否定,我们可以得到一个相同的真值,但属于本机布尔类型。

具体来说,考虑!(!0),它的计算结果是!(True)(因为!0是真的),它的计算结果是false-与0的真值相同,但现在是一个实际的布尔值。