什么是 !!在JavaScript中?

时间:2010-10-24 21:07:52

标签: javascript jquery

  

可能重复:
  What does the !! operator (double exclamation point) mean in JavaScript?

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

做什么!!是什么意思?

2 个答案:

答案 0 :(得分:5)

这是一个双重否定或双重爆炸,因为有人称之为(可能/可能是其他名称),它获取属性并将其转换为布尔值。第一个!取值的倒数 - 得到一个布尔值,然后第二个得到的逆,所以你得到一个布尔回来的true / { {1}}原始的表示,而不是原始的反转。

答案 1 :(得分:2)

这是一种将布尔可转换非布尔类型更改为实际布尔类型的惯用方法。例如,0是Number类型,但也被认为是与布尔值“False”等效的真值。否定是渐开线运算(即它反转自身),因此通过使用双重否定,我们得到相同的真值,但是本机布尔类型。

具体来说,考虑!(!0),其评估为!(True)(因为!0为True),其评估为False - 与0相同的真值,但现在是实际的布尔值。