【问题标题】:What is !! in javascript? [duplicate]什么是 !!在javascript中? [复制]
【发布时间】:2011-04-29 22:55:44
【问题描述】:

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

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

做什么!!什么意思?

【问题讨论】:

  • 对不起,我不知道英文单词!! => 我不能谷歌
  • 当重复的问题没有答案并且被锁定,无法回答时,将问题标记为重复的目的是什么?

标签: javascript jquery


【解决方案1】:

有些人称之为双重否定或双重打击(可能/可能还有其他名称),它正在获取属性并将其转换为布尔值。第一个 ! 取值的倒数 - 产生一个布尔值,然后第二个取 that 的倒数,所以你得到一个布尔值,它是一个true/false 表示原件,而不是原件的反面。

【讨论】:

  • +1 即使问题是重复的,很好
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2014-01-23
    • 1970-01-01
    • 2016-06-13
    • 2016-01-02
    • 2013-04-06
    • 2011-04-02
    • 2014-02-06
    • 2015-12-13
    • 2015-04-17
    相关资源
    最近更新 更多