對(duì)存在JavaScript隱式類型轉(zhuǎn)換的四種情況的總結(jié)(必看篇)
一般存在四種情況,JavaScript會(huì)對(duì)變量的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。
目錄
* if中的條件會(huì)被自動(dòng)轉(zhuǎn)為Boolean類型 * 會(huì)被轉(zhuǎn)為false的數(shù)據(jù) * 會(huì)被轉(zhuǎn)為true的數(shù)據(jù) * 參與+運(yùn)算都會(huì)被隱式的轉(zhuǎn)為字符串 * 會(huì)被轉(zhuǎn)為空字符串的數(shù)據(jù) * 會(huì)被轉(zhuǎn)為字符串的數(shù)據(jù) * 會(huì)被轉(zhuǎn)為數(shù)據(jù)類型標(biāo)記的數(shù)據(jù) * 參與*運(yùn)算都會(huì)被隱式的轉(zhuǎn)為數(shù)字 * 會(huì)被轉(zhuǎn)為0的數(shù)據(jù) * 會(huì)被轉(zhuǎn)為1的數(shù)據(jù) * 會(huì)被轉(zhuǎn)為NaN的數(shù)據(jù) * == 運(yùn)算符 * 為true的時(shí)候 * 為false的時(shí)候
if中的條件會(huì)被自動(dòng)轉(zhuǎn)為Boolean類型
會(huì)被轉(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)
會(huì)被轉(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)算都會(huì)被隱式的轉(zhuǎn)為字符串
會(huì)被轉(zhuǎn)為空字符串的數(shù)據(jù)
'str-' + '' // str- 'str-' + []
會(huì)被轉(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"
會(huì)被轉(zhuǎn)為數(shù)據(jù)類型標(biāo)記的數(shù)據(jù)
'str-' + {} // "str-[object Object]"
'str-' + {a:1} // "str-[object Object]"
參與*運(yùn)算都會(huì)被隱式的轉(zhuǎn)為數(shù)字
會(huì)被轉(zhuǎn)為0的數(shù)據(jù)
2 * '' // 0 2 * [] // 0 2 * false // 0
會(huì)被轉(zhuǎn)為1的數(shù)據(jù)
2 * '1' // 2 2 * [1] // 2 2 * true // 2
會(huì)被轉(zhuǎn)為NaN的數(shù)據(jù)
2 * {} // NaN
2 * {a:1} // NaN
== 運(yùn)算符
為true的時(shí)候
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的時(shí)候
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語(yǔ)句中,則轉(zhuǎn)為true。
以上這篇對(duì)存在JavaScript隱式類型轉(zhuǎn)換的四種情況的總結(jié)(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 淺析JavaScript中的隱式類型轉(zhuǎn)換
- JavaScript隱式類型轉(zhuǎn)換
- 總結(jié)Javascript中的隱式類型轉(zhuǎn)換
- JavaScript中運(yùn)算符規(guī)則和隱式類型轉(zhuǎn)換示例詳解
- JS面試題大坑之隱式類型轉(zhuǎn)換實(shí)例代碼
- 有趣的JavaScript隱式類型轉(zhuǎn)換操作實(shí)例分析
- JavaScript隱式類型轉(zhuǎn)換代碼實(shí)例
- JavaScript隱式類型轉(zhuǎn)換例子總結(jié)
- 淺析JavaScript中的隱式類型轉(zhuǎn)換
- JavaScript 隱式類型轉(zhuǎn)換規(guī)則詳解
- JS不同運(yùn)算符下隱式類型轉(zhuǎn)換的實(shí)現(xiàn)示例
相關(guān)文章
js實(shí)現(xiàn)網(wǎng)頁(yè)五子棋進(jìn)階版
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)網(wǎng)頁(yè)五子棋進(jìn)階版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
ECharts柱狀排名圖柱子上方顯示文字與圖標(biāo)代碼實(shí)例
我們?cè)诶L制柱狀圖時(shí)如果想要柱條上顯示文字,可以參考本文,這篇文章主要給大家介紹了關(guān)于ECharts柱狀排名圖柱子上方顯示文字與圖標(biāo)的相關(guān)資料,需要的朋友可以參考下2023-11-11
微信小程序開(kāi)發(fā)之tabbar圖標(biāo)和顏色的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序開(kāi)發(fā)之tabbar圖標(biāo)和顏色的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
淺析ES6的八進(jìn)制與二進(jìn)制整數(shù)字面量
這篇文章給大家介紹了ES6特性中的八進(jìn)制和二進(jìn)制整數(shù)字面量,介紹的挺不錯(cuò)的現(xiàn)在分享給大家,有需要的可以參考借鑒。2016-08-08
Javascript 阻止瀏覽器默認(rèn)操作的實(shí)現(xiàn)代碼
在瀏覽器事件中,會(huì)觸發(fā)一些默認(rèn)動(dòng)作,比如:點(diǎn)擊一個(gè)鏈接時(shí),執(zhí)行完捕獲/冒泡動(dòng)作后,會(huì)觸發(fā)鏈接的默認(rèn)事件:跳轉(zhuǎn)到指定鏈接地址。2009-09-09
關(guān)閉頁(yè)面window.location事件未執(zhí)行的原因及解決方法
這篇文章主要介紹了關(guān)閉頁(yè)面window.location事件未執(zhí)行的原因及解決方法,需要的朋友可以參考下2014-09-09

