JS 里的數(shù)據(jù)類型轉(zhuǎn)換

轉(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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容