色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript==與===

JavaScript中有兩種比較相等的運(yùn)算符:== 和 ===。這兩個(gè)運(yùn)算符在使用時(shí)很容易混淆。他們都可以用來(lái)測(cè)試兩個(gè)值是否相等,但是在比較時(shí)卻存在很大差異,本文就來(lái)詳細(xì)分析這兩個(gè)運(yùn)算符的不同之處。

在JavaScript中,== 運(yùn)算符稱為等于運(yùn)算符,它的作用是判斷兩個(gè)值是否相等。如果兩個(gè)值的類(lèi)型不一樣,那么它們會(huì)嘗試被轉(zhuǎn)換為相同的類(lèi)型然后進(jìn)行比較。例如:

1 == "1"; // true,"1"被轉(zhuǎn)換為數(shù)字1
0 == "0"; // true,"0"被轉(zhuǎn)換為數(shù)字0
true == 1; // true
null == undefined; // true

然而,由于類(lèi)型轉(zhuǎn)換可能會(huì)出現(xiàn)一些讓人意外的結(jié)果:

" " == 0; // true
" " == false; // true

此時(shí),我們就會(huì)不經(jīng)意間犯下這樣的錯(cuò)誤:

if(value == true){
// ...
}

這個(gè)判斷語(yǔ)句會(huì)將0、""、null、undefined、false等值都當(dāng)做false來(lái)處理,而只有true、非空字符串以及非零數(shù)字才會(huì)被當(dāng)做true來(lái)處理。

與之對(duì)應(yīng)的全等運(yùn)算符===被稱為嚴(yán)格等于運(yùn)算符,它與等于運(yùn)算符的差別在于它不會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換,也就是說(shuō),只有當(dāng)兩個(gè)值的類(lèi)型相同并且值相等時(shí)返回true,否則返回false。

1 === "1"; // false
0 === "0"; // false
true === 1; // false
null === undefined; // false

因此,在使用時(shí),我們應(yīng)該優(yōu)先使用===運(yùn)算符。

那么===運(yùn)算符的使用會(huì)不會(huì)帶來(lái)一些細(xì)節(jié)問(wèn)題呢?答案是肯定的。例如,由于JavaScript中false、0和""在條件語(yǔ)句中都會(huì)被轉(zhuǎn)化成false,所以如果使用===時(shí)需要非常謹(jǐn)慎。比如:

if(value === true){
// ...
}

如果value是0或者'',那么這個(gè)判斷語(yǔ)句會(huì)返回false。

需要注意的是,typeof運(yùn)算符返回的值可能會(huì)讓一些同學(xué)摸不著頭腦:

typeof null; // 輸出"object"
typeof []; // 輸出"object"
typeof {}; // 輸出"object"
typeof new Date(); // 輸出"object"

對(duì)于以上情況,我們也可以使用全等運(yùn)算符進(jìn)行判斷:

null === null; // 輸出true
[] === null; // 輸出false
{} === null; // 輸出false

因此,在JS編碼中,不管是==還是===都應(yīng)該多加留意,及時(shí)修復(fù)或改進(jìn)代碼中的錯(cuò)誤,提高代碼的魯棒性。