一.数据类型转换
(一)隐式转换:运算过程中自动发生的转换,不需要人为干预
(1)数值+字符串 //数值转为字符串
1+'2'='12' //'12'
(2)数值+布尔型 //布尔型转为数值型
1+true=2 //2,true隐式转换为1
1+false=1 //1,false隐式转换为0
(3)布尔型+字符串 //布尔型转为字符串
true+'12'='true12' //'true12'
练习:查看以下程序运行结果
var a=5;
var b=true;
var c='tedu';
console.log(a+b+c); //'6tedu'
console.log(b+c+a); //'truetedu5'
console.log(c+a+b); //'tedu5true'
注:加号(+)的作用
执行数值间的加法运算
执行字符串间的拼接,会将数据转为字符串
隐式转换的特点(加减乘除)
如果加号两端的数据有一个为字符串,则另一个也会转为字符串,最后执行拼接。
其它情况会将非数字隐式转换为数值型,转换的过程中自动调用函数Number来完成的
(二)强制转换
(1)强制转为数值型---Number()
Number('5') //5
Number('3a') //NaN
Number(true) //1
Number(false) //0
Number(null) //0
Number(undefined) //NaN
NaN : Not a Number,不是一个数字,没有成功转为数值返回这个结果,NaN和任何数字执行加减乘除运算结果还是NaN
(2)强制转换为整型---parseInt()
通常用于将字符串和小数转为整型
parseInt(3.14) //3
parseInt('6.18a') //6
parseInt('a6.18') //NaN
转为整型,会从数据的开头寻找整数,如果找不到返回NaN
(3)强制转换为浮点型---parseFloat()
常用于将字符串转为浮点型
parseFloat('3.14') //3.14
parseFloat('6.18a') //6.18
parseFloat('a6.18') //NaN
parseFloat('5a') //5
(4)将数值和布尔型转换为字符串
var num=2;
var str=num.toString(); // '2'