1.强制类型转换
强制类型转换指将一个数据类型强制转换成另一种数据类型。类型转换主要指将其他的数据类型转换成String Number Boolean。
(1)将其他数据类型转换成String类型
方法一:调用被转换类型的toString()方法。该方法不会影响到原变量,它会将转换的结构返回。但是注意,Null和Undefined没有toString()方法,如果调用它们的方法,则会报错。
例:将number转换成string:
var a = 123;a = a.toString();• 1• 2
方法二:调用String()函数。调用String()函数,并将被转换的数据作为参数传递给函数。使用String函数做类型强制转换时,对于Number和Boolean就是调用toString()方法,对于null和undefined,就不会调用toString()方法,它会将null直接转换成”null”,将undefined转换成”undefined”。
例:
var a = 123;a = String(a);• 1• 2
(2)将其他的数据类型转换为Number类型
1)字符串
如果是纯数字的字符串,则直接将其转换为数字
var a = '123';a = Number(a);• 1• 2
如果字符串中有非数字的内容,则转换为NaN。
var a = '123abc';a = Number(a);console.log(a);• 1• 2• 3
2)布尔类型
3)Null
4)Undefined
Undefined转成数字NaN。
转换方式二:这种方式专门用来对付字符串。
parseInt()把一个字符串转换为一个整数;parseFloat()把一个字符串转换为一个浮点数。parseInt()可以将一个字符串中的有效的整数内容去出来,然后转换为Number。parseFloat()和parseInt()作用类似,不同的是它可以获得有效的小数。
var a = '123abc',b = '12.34.56ab';a = parseInt(a);b = parseFloat(b);console.log(a);console.log(b);• 1• 2• 3• 4• 5• 6
控制台会输出123和12.34。
如果对非String使用parseInt()或parseFloat(),它会将其转换为String然后在操作。
(3)将其他的数据类型转换为Boolean类型
1)对于数字
2)对于字符串
3)null和undefined
4)对象
2.隐式类型转换
1)转换为String类型
转换为String类型:可以为任意的数据类型加一个空串的形式将其转换为字符串。
var a = 123;a = a + ‘’;• 1• 2
2)转换为Number类型
可以通过一元的 + (+0 /1 *1)来将一个其他的数据类型转换为Number。
var a = '123'a = +a;• 1• 2
3)转换为Boolean类型
转换为Boolean类型:可以为一个值取两次反来将其转换为布尔值。
var a = 10;a = !!a;• 1• 2
原理和Boolean()函数一样。
