對存在JavaScript隱式類型轉(zhuǎn)換的四種情況的總結(jié)(必看篇)
一般存在四種情況,JavaScript會對變量的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。
目錄
* if中的條件會被自動轉(zhuǎn)為Boolean類型 * 會被轉(zhuǎn)為false的數(shù)據(jù) * 會被轉(zhuǎn)為true的數(shù)據(jù) * 參與+運(yùn)算都會被隱式的轉(zhuǎn)為字符串 * 會被轉(zhuǎn)為空字符串的數(shù)據(jù) * 會被轉(zhuǎn)為字符串的數(shù)據(jù) * 會被轉(zhuǎn)為數(shù)據(jù)類型標(biāo)記的數(shù)據(jù) * 參與*運(yùn)算都會被隱式的轉(zhuǎn)為數(shù)字 * 會被轉(zhuǎn)為0的數(shù)據(jù) * 會被轉(zhuǎn)為1的數(shù)據(jù) * 會被轉(zhuǎn)為NaN的數(shù)據(jù) * == 運(yùn)算符 * 為true的時候 * 為false的時候
if中的條件會被自動轉(zhuǎn)為Boolean類型
會被轉(zhuǎn)為false的數(shù)據(jù)
if(false) console.log(2333) if('') console.log(2333) if(null) console.log(2333) if(undefined) console.log(2333) if(NaN) console.log(2333)
會被轉(zhuǎn)為true的數(shù)據(jù)
if(true) console.log(2333) // 2333 if('test') console.log(2333) // 2333 if([]) console.log(2333) // 2333 if({}) console.log(2333) // 2333
參與+運(yùn)算都會被隱式的轉(zhuǎn)為字符串
會被轉(zhuǎn)為空字符串的數(shù)據(jù)
'str-' + '' // str- 'str-' + []
會被轉(zhuǎn)為字符串的數(shù)據(jù)
'str-' + '1' // "str-1" 'str-' + 1 // "str-1" 'str-' + false // "str-false" 'str-' + true // "str-true" 'str-' + null // "str-null" 'str-' + undefined // "str-undefined" 'str-' + NaN // "str-NaN"
會被轉(zhuǎn)為數(shù)據(jù)類型標(biāo)記的數(shù)據(jù)
'str-' + {} // "str-[object Object]" 'str-' + {a:1} // "str-[object Object]"
參與*運(yùn)算都會被隱式的轉(zhuǎn)為數(shù)字
會被轉(zhuǎn)為0的數(shù)據(jù)
2 * '' // 0 2 * [] // 0 2 * false // 0
會被轉(zhuǎn)為1的數(shù)據(jù)
2 * '1' // 2 2 * [1] // 2 2 * true // 2
會被轉(zhuǎn)為NaN的數(shù)據(jù)
2 * {} // NaN 2 * {a:1} // NaN
== 運(yùn)算符
為true的時候
0 == false // true 0 == '' // true 0 == '0' // true 0 == [] // true 0 == [0] // true 1 == true // true 1 == '1' // true 1 == [1] // true [1] == true // true [] == false // true
為false的時候
0 == {} // false 0 == null // false 0 == undefined // false 0 == NaN // false 1 == {} // false 1 == null // false 1 == undefined // false 1 == NaN // false [] == [] // false [1] == [1] // false [1] == {} // false [1] == {a:1} // false [1] == false // false [1] == null // false [1] == undefined // false [1] == NaN // false {} == {} // false {a:1} == {a:1} // false
注:空數(shù)組[],在+運(yùn)算符下是轉(zhuǎn)為空字符串'',在*運(yùn)算符下是轉(zhuǎn)為數(shù)字0。但在if語句中,則轉(zhuǎn)為true。
以上這篇對存在JavaScript隱式類型轉(zhuǎn)換的四種情況的總結(jié)(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 淺析JavaScript中的隱式類型轉(zhuǎn)換
- JavaScript隱式類型轉(zhuǎn)換
- 總結(jié)Javascript中的隱式類型轉(zhuǎn)換
- JavaScript中運(yùn)算符規(guī)則和隱式類型轉(zhuǎn)換示例詳解
- JS面試題大坑之隱式類型轉(zhuǎn)換實例代碼
- 有趣的JavaScript隱式類型轉(zhuǎn)換操作實例分析
- JavaScript隱式類型轉(zhuǎn)換代碼實例
- JavaScript隱式類型轉(zhuǎn)換例子總結(jié)
- 淺析JavaScript中的隱式類型轉(zhuǎn)換
- JavaScript 隱式類型轉(zhuǎn)換規(guī)則詳解
- JS不同運(yùn)算符下隱式類型轉(zhuǎn)換的實現(xiàn)示例
相關(guān)文章
JS中mouseover和mouseout多次觸發(fā)問題如何解決
這篇文章主要介紹了JS中mouseover和mouseout多次觸發(fā)問題如何解決的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06關(guān)于事件mouseover ,mouseout ,mouseenter,mouseleave的區(qū)別
mouseover ,mouseout ,mouseenter,mouseleave,都是鼠標(biāo)點擊而觸發(fā)的事件,各自代表什么意思,有哪些區(qū)別呢?下面跟著腳本之家小編一起看看吧2015-10-10E3 tree 1.6在Firefox下顯示問題的修復(fù)方法
tree 在Firefox下只顯示一句話,用firebug查看頁面元素觀察發(fā)現(xiàn),兩個script導(dǎo)入被一個<script>分隔開了,顯然是document.write的問題.由于Firefox對js規(guī)范的檢查比較嚴(yán)格,肯定一些字符輸出的的時候沒有轉(zhuǎn)義2013-01-01JS自調(diào)用匿名函數(shù)具體實現(xiàn)
定義一個函數(shù)用做臨時的命名空間,在這個命名空間內(nèi)定義的變量都不會污染到全局命名空間,需要的朋友可以參考下2014-02-02inputSuggest文本框輸入時提示、自動完成效果(郵箱輸入自動補(bǔ)全插件)
inputSuggest在文本框輸入字符時提示,類似Windows的“自動完成”功能,當(dāng)在文本框輸入字符時,與此相關(guān)的內(nèi)容會顯示在文本框的下邊,你可隨時使用鍵盤或鼠標(biāo)點選那些提示,你就不用輸入了2012-05-05