js数据类型转换

一、Boolean转换
1、转型函数Boolean()

 Boolean      true                   false

 String      任何非空字符串             ""(空字符串)

 Number      任何非零数字值(包括无穷大)    0和NaN

 Object      任何对象                 null

 Undefined    n/a                    undefined


① n/a(或N/A),是not applicable 的缩写,意思是“不适用”。)

流控制语句(如if)会自动执行响应的Boolean转换,所以掌握这些规则非常有必要!

下面我们做一些简单测试

console.log(Boolean(true))
console.log(Boolean(false))
console.log(Boolean(""))
console.log(Boolean("test"))
console.log(Boolean(0))
console.log(Boolean(1))
console.log(Boolean(NaN))
console.log(Boolean({}))
console.log(Boolean(null))
console.log(Boolean(undefined))

输出结果为


二、数值转换

有三个函数可以把非数值转换为数值Number()、parseInt()、parseFloat()。Number()可以用于任何数据类型,而另两个专门用于把字符串转换成数值。

1、转型函数Number()
的转换规则:

        Boolean值                           true和false分别转换成1和0

        数字                                     简单的传入和返回

        null                                      0

        undefined                            0

        字符串:

            只包含数字                    十进制数值(忽略前导零)

            包含有效的浮点格式       对应的浮点数值(忽略前导零)

            包含有效的十六进制       相同大小的十进制整数

            空字符串                        0

            字符串中包含上述格式之外的字符        NaN

        对象      调用对象的valueOf()方法,然后依照前面规则转换。如果转换结果是NaN,调用对象toString()依照前面规则转换

2、parseInt()的转换规则:

从第一个非空格字符,如果第一个非空字符不是数字或负号,返回NaN,如果是,则查找下一个,遇到非数字字符时返回NaN。

        空字符串                  NaN

        浮点数                     整数部分

        十六进制                 对应的十进制数值

        八进制                    不能解析八进制,按照十进制来看(es3会按照八进制转化成响应的十进制数值)

console.log(parseInt(""))
console.log(parseInt("1.2"))
console.log(parseInt("0xa))
console.log(parseInt("070"))//es5不识别八进制哦
console.log(parseInt("-1"))

parseInt规定了第二个参数,规定要被解析的字符串的基数(几进制)为了避免错误,最好写上这个参数哦~


3、parseFloat()的转换规则:

和praseInt解析规则类似,但是会始终忽略前导零,只能解析十进制(十六进制格式的字符串会被解析成0),因此没有用第二个参数制定基础的用法

console.log(parseFloat("0XA"))
console.log(parseFloat("12"))
console.log(parseFloat("12X"))
console.log(parseFloat("12.1.1"))
console.log(parseFloat("012.1"))
console.log(parseFloat("3.12e7"))

4、++

一元+操作符和Number(0一样

三、字符串转换方法

1、toString()

数值、字符串、对象、布尔值都有toString方法,都返回相应值的字符串表现,但是null和undefined没有

注:使用时必须先定义一个变量,为数值转化时可以规定基数

var a="test";
console.log(a.toString());
var b=true;
console.log(b.toString());
var c=10;
console.log(c.toString(2));
console.log(c.toString(8));
console.log(c.toString(10));//不写参数默认为10
console.log(c.toString(16));

2、转型函数String()

转换规则:

如果有toString()方法,调用此方法(无参数)并返回结果

如果是null ,返回“null”

如果是undefined,返回“undefined”

console.log(String(1));
console.log(String(null));
console.log(String(undefined));
console.log(String(true));
console.log(String("fff"));

3、+“”


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值