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