JS 里的数据类型转换

转为字符串

toString()
String()
全局函数 window.String()

btoa():任意值转为 Base64 编码
atob():Base64 编码转为原来的值

(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!"

老司机 用 +'' 来实现

1 + ''         // '1'
true + ''      // 'true'
null + ''      // 'null'
undefined + '' // 'undefined'

var obj = {}
obj + ''       // '[object Object]'

1 + '1'        // 等于(1).toString + '1' ->   '11'

转为布尔

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([])         //        空数组true

老司机 在左边加 !! 来实现(取反再取反)

!!1          //        true
!!0          //        false
!!NaN        //        false

!!''         //        false
!!' '        //        true

!!null       //        false

!!undefined  //        false

!!{}         //        true
!![]         //        true

转为数值

Number()
当转换的内容包含非数字的时候,Number() 会返回 NaN
parseInt()
如果以数字开头,parseInt() 返回开头的合法的数字部分,否则返回 NaN

parseFloat()

Number('1')        // 1

parseInt('1')      // 1  
parseInt('011')    // 11,这是十进制
parseInt('011',8)  // 9 如果后面加8变成八进制
parseInt('aaaa')   // NaN
parseInt('1aaaaa') // 1

parseFloat('1.23') // 1.23

老司机 用 -0 来实现

'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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容