這次帶給大家JS隱式類型轉換總結,JS隱式型別轉換的注意事項有哪些,下面就是實戰案例,一起來看一下。
一般有四種情況,JavaScript會對變數的資料型別轉換。
目錄
* if中的条件会被自动转为Boolean类型 * 会被转为false的数据 * 会被转为true的数据 * 参与+运算都会被隐式的转为字符串 * 会被转为空字符串的数据 * 会被转为字符串的数据 * 会被转为数据类型标记的数据 * 参与*运算都会被隐式的转为数字 * 会被转为0的数据 * 会被转为1的数据 * 会被转为NaN的数据 * == 运算符 * 为true的时候 * 为false的时候
if中的條件會自動轉為Boolean型別
會被轉為false的資料
if(false) console.log(2333) if('') console.log(2333) if(null) console.log(2333) if(undefined) console.log(2333) if(NaN) console.log(2333)
會被轉為true的資料
if(true) console.log(2333) // 2333 if('test') console.log(2333) // 2333 if([]) console.log(2333) // 2333 if({}) console.log(2333) // 2333
# 參與 運算都會被隱式的轉為字串
會被轉為空字串的資料
'str-' + '' // str- 'str-' + []
會被轉為字串的資料
'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"
# 會被轉為資料類型標記的資料
'str-' + {} // "str-[object Object]" 'str-' + {a:1} // "str-[object Object]"
參與*運算都會被隱式的轉換為數字
會被轉為0的資料
2 * '' // 0 2 * [] // 0 2 * false // 0
# 會被轉為1的資料
2 * '1' // 2 2 * [1] // 2 2 * true // 2
# 會被轉為NaN的資料
2 * {} // NaN 2 * {a:1} // NaN
== 運算子
為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
# 註:空數組[],在 運算子下是轉為空字串'',在*運算子下是轉為數字0。但在if語句中,則轉為true。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
#以上是JS隱式型別轉換總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!