a == null和=== null之间有什么区别?

时间:2013-12-19 17:26:51

标签: javascript

有人可以通过解释差异来帮助我。根据我的理解,===确实匹配,但与null相比,这是什么意思?

6 个答案:

答案 0 :(得分:9)

  

与null比较时,这是什么意思?

这正是您所说的内容:它检查该值是否正好null


如果a === null的值为a,则

null为真。

请参阅The Strict Equality Comparison Algorithm in the specification

  

1。如果Type(x)Type(y)不同,则返回false   2.如果Type(x)未定义,则返回true   3.如果Type(x)为空,则返回true。

因此,仅当Type(a)为Null时,比较才返回true。

重要提示:请勿将内部Type函数与typeof运算符混淆。 typeof null实际上会返回字符串"object",这比帮助更令人困惑。


如果a == null的值为anull,则

undefined为真。

请参阅The Abstract Equality Comparison Algorithm in the specification

  

2。如果xnullyundefined,则返回true   3.如果xundefinedynull,则返回true。

答案 1 :(得分:1)

===是严格运算符,它不仅要比较值,还要比较变量的类型

string===string
int===int

==仅比较值。

答案 2 :(得分:1)

使用三等于,值的类型也必须相等。但不在==。

1==true // this return true
1===true // but return false

a==null // will true if a is null or undefined

答案 3 :(得分:0)

1==true将为true

1===true将为false

例如。 ===使用==时数据类型级别进行比较.Java将自行进行类型转换

答案 4 :(得分:-1)

===表示它检查变量的值和类型。例如从w3c页面拉出,给定x = 5,x是一个int,所以x ===“5”是假的,因为它是比较和int到string而x === 5是真的,因为它都是一个int和正确的价值。

答案 5 :(得分:-1)

===进行类型检查。除此之外没有区别。
这将有助于您了解是否更好:difference between is_null “== NULL” and “=== NULL” in PHP [duplicate]