有人可以通過解釋差異來幫助我。從我所瞭解的===完全匹配,但與null比較時,這意味着什麼?a == null和a === null之間有什麼區別?
回答
與null比較時,這意味着什麼?
這意味着你已經說過:它檢查值是否正好是null
。
a === null
是真的如果a
值null
。
見The Strict Equality Comparison Algorithm in the specification:
1.如果
Type(x)
是Type(y)
不同,返回false。
2.如果Type(x)
是Undefined,則返回true。
3.如果Type(x)
爲空,則返回true。
所以,只有當Type(a)
爲空時,比較才返回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。
涼的東西,漂亮的鏈接! – JoeC
===表示它檢查變量的值和類型。例如,從w3c頁面拉出,給定x = 5,x是一個int,所以x ===「5」是false,因爲它比較字符串和int,並且x === 5是true,因爲它既是int和正確的價值。
很好的例子,但OP在具體詢問'null'情況下的比較。 – adamdunson
===
是嚴格的運營商,它不僅比較值,而且類型的變量,這樣
string===string
int===int
==
只比較值。
===進行類型檢查。除此之外,沒有區別。
這將幫助你瞭解是否更好:difference between is_null 「== NULL」 and 「=== NULL」 in PHP [duplicate]
1==true
將true
但1===true
將false
如。 ===
在使用時比較數據類型級別==
JavaScript將通過它自己進行類型轉換
使用三等於,這些值的類型也必須相同。但不在==中。
即
1==true // this return true
1===true // but return false
a==null // will true if a is null or undefined
- 1. != null和!== null之間有什麼區別?
- 2. a + = b和a = + b之間的區別是什麼,a ++和++ a?
- 3. A a有什麼區別?和A a();?
- 4. undefined和null之間有什麼區別?
- 5. a,&a和* a有什麼區別?
- 6. a = a + b和a + = b之間的區別是什麼?
- 7. 列表(a)和[a]之間有什麼區別?
- 8. a // b和int(a/b)之間有什麼區別?
- 9. $ a == 2和2 == $ a之間有什麼區別?
- 10. 定義char a [5]和char(* a)[5]之間有什麼區別?
- 11. 演員之間有什麼區別:(A)x和x爲A?
- 12. typedef char [4] A和typedef char(&A)[4]之間有什麼區別?
- 13. 這些(bCondition == NULL)和(NULL == bCondition)之間有什麼區別?
- 14. 'a'和'a'有什麼區別?
- 15. a ++和++ a或a--和--a在java中有什麼區別?
- 16. (null)和<null>有什麼區別?
- 17. * a = b和a =&b之間的區別是什麼?
- 18. 聲明「MyStuct a();」之間的區別是什麼?和「MyStruct a」?
- 19. a [:] = b和a = b之間的區別是什麼?
- 20. if($ a)和if($ a == 1)之間的區別是什麼?
- 21. C中*(a [1])和*(* a + 1)之間的區別是什麼?
- 22. String [] a和String之間的區別... a
- 23. 什麼是Object.Equals(obj,null)和obj == null之間的區別
- 24. null == x和x == null之間的區別?
- 25. PHP中NULL和null之間的區別
- 26. 區別:%% a和%variable%變量之間的區別是什麼?
- 27. A * pA = new A之間的區別;和A * pA = new A();
- 28. double a = a + int b和int a + = double b之間的區別是什麼?
- 29. A == B對B == A,有什麼區別
- 30. (/^[a-zA-Z] + $ /)與(/^[a-zA-Z] $ /)之間的區別是什麼?
見http://stackoverflow.com/a/359509/2958164 –