轉(zhuǎn)為字符串
toString()
String()
全局函數(shù) window.String()
btoa():任意值轉(zhuǎn)為 Base64 編碼
atob():Base64 編碼轉(zhuǎn)為原來的值
(1).toString() // '1'
true.toString() // 'true'
null.toString() // error:Cannot read property 'toString' of null
undefined.toString() // error:Cannot read property 'toString' of undefined
String(null) // 'null'
window.String(null) // 'null'
var string = 'Hello World!';
btoa(string) // "SGVsbG8gV29ybGQh"
atob('SGVsbG8gV29ybGQh') // "Hello World!"
老司機(jī) 用 +'' 來實現(xiàn)
1 + '' // '1'
true + '' // 'true'
null + '' // 'null'
undefined + '' // 'undefined'
var obj = {}
obj + '' // '[object Object]'
1 + '1' // 等于(1).toString + '1' -> '11'
轉(zhuǎn)為布爾
Boolean()
除了5個 faley 值返回 false ,其他都返回 true
5個 faley 值:undefined 、 null 、 0 、NaN 、 ""或''(空字符串)
Boolean(1) // true
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // 空字符串false
Boolean(' ') // 空格字符串true
Boolean(null) // false
Boolean(undefined) // false
Boolean({}) // 空對象true
Boolean([]) // 空數(shù)組true
老司機(jī) 在左邊加 !! 來實現(xiàn)(取反再取反)
!!1 // true
!!0 // false
!!NaN // false
!!'' // false
!!' ' // true
!!null // false
!!undefined // false
!!{} // true
!![] // true
轉(zhuǎn)為數(shù)值
Number()
當(dāng)轉(zhuǎn)換的內(nèi)容包含非數(shù)字的時候,Number() 會返回 NaN
parseInt()
如果以數(shù)字開頭,parseInt() 返回開頭的合法的數(shù)字部分,否則返回 NaN
parseFloat()
Number('1') // 1
parseInt('1') // 1
parseInt('011') // 11,這是十進(jìn)制
parseInt('011',8) // 9 如果后面加8變成八進(jìn)制
parseInt('aaaa') // NaN
parseInt('1aaaaa') // 1
parseFloat('1.23') // 1.23
老司機(jī) 用 -0 來實現(xiàn)
'1' - 0 // 1
'1.23' - 0 // 1.23
+ '1' // 1
+ '1.23' // 1.23
+ '.1' // 0.1
+ '-1' // -1
-'-1' // 1
1 + '1' // '11'
1 + '1' - 0 // 11
1 + ('1' - 0) // 2
1 + + '1' // 2