头疼的类型转换(一)之基本数据类型间的转换

类型转换问题

一、概述

类型转换问题是比较头疼的,下面直接来看一下我的思维导图吧:
在这里插入图片描述

二、本篇博客的目的

本篇博客的目的就把基本数据类型间的转化整明白。下面直接将进入正题

三、基本数据 -> Boolean

这个比较好整,就只有一种方法可以转到Boolean,那就是调用Boolean()。这个Boolean()的特点如下:
3.1、null、undefined、NaN -> false
3.2、0 -> false
3.3、其余 -> true

验证如下:

console.log(Boolean(undefined))         // false
console.log(Boolean(NaN))               // false
console.log(Boolean(null))              // false
console.log(Boolean(0))                 // false
console.log(Boolean('0'))               // false

四、基本数据 -> String

根据上面的思维导图,我们已经知道基本数据类型转化为String类型,可以有2种方法:

4.1、toString(x)
在基本数据类型中,除了undefined、null,其余的基本数据类型都有toString()。它的使用比较灵活,美没有忌口的东西,传进来啥就得到啥。

验证如下:

console.log('123'.toString())              // '123'
console.log('0123'.toString())             // '0123'
console.log(true.toString())               // 'true'

4.2、String(x)
当调用String方法的时候,实际上是调用了ToString方法,ToString的转换规则如下:

xvalue
undefined‘undefined’
null‘null’
NaN‘NaN’
stringstring
number‘number’

参考规范:参考规范

测试如下:

console.log(String(undefined))           // 'undefined'
console.log(String(null))                // 'null'
console.log(String(NaN))                 // 'NaN'
console.log(String(123))                 // '123'
console.log(String(0123))                // 83
console.log(String('0123'))              // '0123'

推荐用法:String(),因为undefined和null不能使用toString()

五、基本数据 -> Number

3种方法:
1、Number(x)
当调用Number方法的时候,实际上会调用ToNumber方法,ToNumber方法的转换规则对应如下:

xvalue
undefinedNaN
NaNNaN
null0
boolean1(true)、0(false)
numbernumber
string‘’ -> 0 ; ’ '-> 0;以0开头的字符串,忽略前导0;否则数字字符串中只要有一个非数字,就转换为NaN

测试如下:

console.log(Number(undefined))           // NaN
console.log(Number(NaN))                 // NaN
console.log(Number(null))                // 0
console.log(Number(''))                  // 0
console.log(Number(' '))                 // 0
console.log(Number('0'))                 // 0
console.log(Number('0123'))              // 123
console.log(Number('123 '))              // 123
console.log(Number(' 123'))              // 123
console.log(Number('123a'))              // NaN

2、parseInt(x)

这个比较灵活,转换规则稍微有点不同,转换规则如下:

xvalue
undefinedNaN
NaNNaN
nullNaN
numbernumber取整,不会四舍五入
string如果第一个字符是非数字,直接返回NaN

测试如下:

console.log(parseInt(undefined))                //NaN 
console.log(parseInt(NaN))                      //NaN 
console.log(parseInt(null))                     //NaN 
console.log(parseInt(''))                       //NaN 
console.log(parseInt(' '))                      //NaN 
console.log(parseInt(' 123'))                   //NaN
console.log(parseInt('012345'))                 //12345  

3、parseFloat
转换规则同上

五、总结

希望本篇博客能够给你带来不一样的感觉,哈哈哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值