【问题标题】:What does a !! in JavaScript mean? [duplicate]a!! 是什么意思?在 JavaScript 中是什么意思? [复制]
【发布时间】:2011-04-16 11:57:05
【问题描述】:

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

遇到这行代码

strict = !!argStrict

...here 想知道!! 对线路有什么影响?对 JS 很陌生!

【问题讨论】:

标签: javascript


【解决方案1】:

它将您的值转换为布尔类型:

var x = '1';
var y = !!x;

// (typeof y === 'boolean')

还要注意以下几点:

var x = 0;
var y = '0';       // non empty string is truthy
var z = '';

console.log(!!x);  // false
console.log(!!y);  // true
console.log(!!z);  // false

【讨论】:

    【解决方案2】:

    它通过两次取反将值转换为布尔类型的值。当您想确保一个值是布尔值而不是其他类型的值时,可以使用它。

    在 JS 中,所有处理布尔值的东西都接受其他类型的值,有些甚至可以返回非布尔值(例如,||&&)。 ! 但是总是返回一个布尔值,因此它可以用于将事物转换为布尔值。

    【讨论】:

      【解决方案3】:

      是一对logical not operators

      它将虚假值(例如0false)转换为true,然后再转换为false,将真实值(例如true"hello")转换为false,然后再转换为@ 987654329@。

      最终结果是你得到一个布尔版本的值。

      【讨论】:

        【解决方案4】:

        它转换为布尔值

        【讨论】:

          【解决方案5】:

          它是一个“不是”参数

          常用于将(快捷方式)字符串值转换为布尔值

          像这样..

          if(!!'true') { alert('its true')}

          【讨论】:

          • if(!!'false') { alert('its true')} 仍然提醒'true'
          • 补充丹尼尔的评论,javascript中的非空字符串总是被认为是“真实的”。强制转换时,null 或空字符串将被视为“虚假”。也许您打算写if(!!true) { alert('it is true')}
          • 你是对的!,对不起,糟糕/简短的答案.. :) 丹尼尔的回答更完整
          猜你喜欢
          • 2015-07-15
          • 2018-07-17
          • 2014-07-28
          • 2021-09-18
          • 1970-01-01
          • 2017-06-11
          • 2019-02-05
          • 1970-01-01
          相关资源
          最近更新 更多