==比較運算符

比較不同類型的數(shù)據(jù)時,相等運算符會先將數(shù)據(jù)進行類型轉(zhuǎn)換,然后再用嚴(yán)格相等運算符比較。

"" == 0  //題目1
" " == 0  //題目2
"" == true  //題目3
"" == false  //題目4
" " == true  //題目5

(1)原始類型的值

原始類型的數(shù)據(jù)(數(shù)字、字符串、布爾)會轉(zhuǎn)換成數(shù)值類型再進行比較。

1 == true // true
// 等同于 1 === Number(true)

0 == false // true
// 等同于 0 === Number(false)

2 == true // false
// 等同于 2 === Number(true)

2 == false // false
// 等同于 2 === Number(false)

'true' == true // false
// 等同于 Number('true') === Number(true)
// 等同于 NaN === 1

'' == 0 // true
// 等同于 Number('') === 0
// 等同于 0 === 0

'' == false  // true
// 等同于 Number('') === Number(false)
// 等同于 0 === 0

'1' == true  // true
// 等同于 Number('1') === Number(true)
// 等同于 1 === 1

'\n  123  \t' == 123 // true
// 因為字符串轉(zhuǎn)為數(shù)字時,省略前置和后置的空格

上面代碼將字符串和布爾值都轉(zhuǎn)為數(shù)值,然后再進行比較。

(2)對象與原始類型值比較

對象(這里指廣義的對象,包括數(shù)組和函數(shù))與原始類型的值比較時,對象轉(zhuǎn)化成原始類型的值,再進行比較。

[1] == 1 // true
// 等同于 Number([1]) == 1

[1] == '1' // true
// 等同于 Number([1]) == Number('1')

[1] == true // true
// 等同于 Number([1]) == Number(true)

{} == true //false
// Number({}) 空對象會轉(zhuǎn)換為NaN

[] == true //false
// Number([]) 空數(shù)組對象為0

(3)undefined 和 null

undefined和null與其他類型的值比較時,結(jié)果都為false,它們互相比較時結(jié)果為true。

false == null // false
false == undefined // false

0 == null // false
0 == undefined // false

undefined == null // true

絕大多數(shù)情況下,對象與undefined和null比較,都返回false。只有在對象轉(zhuǎn)為原始值得到undefined時,才會返回true,這種情況是非常罕見的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 運算符是處理數(shù)據(jù)的基本方法,用來從現(xiàn)有的值得到新的值。JavaScript 提供了多種運算符,本章逐一介紹這些運算...
    許先生__閱讀 712評論 0 3
  • 運算符是處理數(shù)據(jù)的基本方法,用來從現(xiàn)有的值得到新的值。JavaScript 提供了多種運算符,本章逐一介紹這些運算...
    徵羽kid閱讀 780評論 0 0
  • 算術(shù)運算符 JavaScript 共提供10個算術(shù)運算符,用來完成基本的算術(shù)運算。 加法運算符:x + y 減法運...
    guyigg閱讀 1,383評論 0 1
  • 表達(dá)式 表達(dá)式是由數(shù)字、運算符、數(shù)字分組符號(如括號)、自由變量和約束變量等以能求得數(shù)值的有意義排列方法所得的組合...
    劼哥stone閱讀 649評論 0 4
  • 2018年,會是怎樣一年? 年初發(fā)現(xiàn)懷孕,心情復(fù)雜得無法形容,也許因為已經(jīng)做了母親,母性使然,內(nèi)心...
    陸小寒閱讀 468評論 2 0

友情鏈接更多精彩內(nèi)容