有人可以通过解释差异来帮助我。根据我的理解,===确实匹配,但与null相比,这是什么意思?
答案 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
的值为a
或null
,则 undefined
为真。
请参阅The Abstract Equality Comparison Algorithm in the specification:
2。如果
x
为null
且y
为undefined
,则返回true 3.如果x
为undefined
且y
为null
,则返回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]