【问题标题】:What's the difference between double exclamation operator and Boolean() in JavaScript? [duplicate]JavaScript 中的双感叹号运算符和 Boolean() 有什么区别? [复制]
【发布时间】:2012-12-21 12:46:39
【问题描述】:

我知道!!variable 会将变量转换为布尔值,而函数Boolean(),根据 ecma262 规范,还将通过调用 ToBoolean(value) 来执行类型转换。

我的问题是:有什么区别? !! 的性能是否比 Boolean() 更好?

【问题讨论】:

  • 没有ToBoolean(var),只有Boolean(var)
  • @sachleen 我认为他指的是部分 ecma 规范。
  • 我的总猜测是:绝对没有差异,性能差异可以忽略不计。但很快就会有人拿出一些数据。

标签: javascript


【解决方案1】:

它们是相同的,因为! 运算符将在其操作数内部调用ToBoolean(),然后翻转该返回值,而Boolean() 将在其参数内部调用ToBoolean()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2012-03-06
    • 2011-11-19
    • 2012-01-27
    • 2013-02-19
    • 1970-01-01
    相关资源
    最近更新 更多