您好,登錄后才能下訂單哦!
1.1-隱式轉(zhuǎn)換介紹
在js中,當運算符在運算時,如果兩邊數(shù)據(jù)不統(tǒng)一,CPU就無法計算,這時我們編譯器會自動將運算符兩邊的數(shù)據(jù)做一個數(shù)據(jù)類型轉(zhuǎn)換,轉(zhuǎn)成一樣的數(shù)據(jù)類型再計算,這種無需程序員手動轉(zhuǎn)換,而由編譯器自動轉(zhuǎn)換的方式就稱為隱式轉(zhuǎn)換,例如1 > "0"這行代碼在js中并不會報錯,編譯器在運算符時會先把右邊的"0"轉(zhuǎn)成數(shù)字0然后再比較大小
關(guān)于== 和 ===的性能,有人會覺得, == 的性能會比 === 的性能要慢。沒錯,== 確實是要比 === 多花一點時間,但是這只是微秒級的差別,也就是萬分之一秒左右,對于程序來說可忽略不計。但是無論 == 還是 === 都會檢測類型,只是檢測出來之后各自的操作不一樣。
空數(shù)組的toString()方法會得到空字符串,而空對象的toString()方法會得到字符串[object Object]
(注意第一個小寫o,第二個大寫O喲)
邏輯運算符優(yōu)先級高于關(guān)系運算符
1.邏輯非將其他數(shù)據(jù)類型轉(zhuǎn)換成布爾類型
2.關(guān)系運算符將其他數(shù)據(jù)類型轉(zhuǎn)換成數(shù)字
valueOf() 方法可返回 Boolean 對象的原始值。
console.log( [ ] == 0) //true 空數(shù)組的toString()方法會得到空字符串
console.log( ![ ] == 0) //true 空數(shù)組轉(zhuǎn)布爾得到true 然后取反得到false
console.log( [ ] == [ ]) //false
console.log( !{} == 0) //false 空對象
console.log( {} == {}) //false 引用數(shù)據(jù)類型存在堆中,堆中存儲的是地址
console.log( !{} == {}) //false
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。