強制轉換
Number、String和Boolean三個函數
其他的數據類型轉換爲String
- toString()方法
- String()函數
其他的數據類型轉換爲Number
- parseInt() & parseFloat()
- Number()
兩者的區別:Number更嚴格,parseInt可以自動將裏面的字符串過濾。
其他的數據類型轉換爲Boolean
只有空字符串("")、null、undefined、+0、-0 和 NaN 轉爲布爾型是 false,其他的都是 true,空數組、空對象轉換爲布爾類型也是 true,甚至連false對應的布爾對象new Boolean(false)也是true
Boolean(undefined) // false
自動轉換
自動轉換爲布爾值
if ('abc') {
console.log('hello')
} // "hello"
自動轉換爲數值
算數運算符(+ - * /)跟非Number類型的值進行運算時,會將這些值轉換爲Number,然後在運算,除了字符串的加法運算
true + 1 // 2
2 + null // 2
undefined + 1 // NaN
2 + NaN // NaN 任何值和NaN做運算都得NaN
'5' - '2' // 3
'5' * '2' // 10
true - 1 // 0
'1' - 1 // 0
'5' * [] // 0
false / '5' // 0
'abc' - 1 // NaN
自動轉換爲字符串
字符串的自動轉換,主要發生在字符串的加法運算時。當一個值爲字符串,另一個值爲非字符串,則後者轉爲字符串。
'5' + 1 // '51'
'5' + true // "5true"
'5' + false // "5false"
'5' + {} // "5[object Object]"
'5' + [] // "5"
'5' + function (){} // "5function (){}"
'5' + undefined // "5undefined"
'5' + null // "5null"