【问题标题】:What is exactly the meaning of "===" in javascript? [duplicate]javascript中“===”的确切含义是什么? [复制]
【发布时间】:2010-11-05 00:18:11
【问题描述】:

可能重复:
Javascript === vs ==

“===”和“==”之间的区别是什么?谢谢!

【问题讨论】:

标签: javascript


【解决方案1】:

'===' 表示没有类型强制的平等。换句话说,如果使用三等号,则值的类型也必须相等。

例如

0==false   // true
0===false  // false, because they are of a different type
1=="1"     // true, auto type coersion
1==="1"    // false, because they are of a different type

来源:http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html

【讨论】:

  • type coercion 是为那些对强制使用感到困惑的人准备的。
【解决方案2】:

摘自我的博客:keithdonegan.com

等式运算符 (==)

相等运算符 (==) 检查两个操作数是否相同,如果相同则返回 true,如果不同则返回 false。

身份运算符 (===)

身份运算符检查两个操作数是否“相同”。

这些规则确定两个值是否相同:

  • 它们必须具有相同的类型。
  • 如果数值具有相同的值,则它们是相同的,除非一个或两个都是 NaN。
  • 如果字符串值具有相同的值,则它们是相同的,除非字符串的长度或内容不同。
  • 如果两个值都引用同一个对象、数组或函数,则它们是相同的。
  • 如果两个值都为 null 或未定义,则它们是相同的。

【讨论】:

    【解决方案3】:

    === 运算符表示“完全等于”,按值和数据类型进行匹配。

    == 运算符表示“等于”,仅按值匹配。

    【讨论】:

      【解决方案4】:

      它测试值和类型的完全相等。

      given the assignment
      x = 7
      
      x===7 is true
      x==="7" is false
      

      【讨论】:

        【解决方案5】:

        简而言之,“===”测试值与类型的相等性: From here:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-14
          • 1970-01-01
          • 2014-03-24
          • 2017-04-19
          • 2011-05-06
          • 2013-07-22
          相关资源
          最近更新 更多