JS共有七种数据类型,包括number,string,boolean,symbol,null,undefined,object等。symbol在我们接下来的学习中接触较少,不再讨论。null,undefined是单值,一般不会有其他类型的值要转为这两种类型。因此,下面重点讨论以下几种转化方式:
转为Number类型
1.Number()
将其他数据类型转为Number类型。
Number('324') //324
Number('') //0
Number(true) //1
Number(null) //0
Number(undefined) //NaN
2.parseInt()
将其他数据类型转为整型的Number。请注意,parseInt()遇到字符中不能转为整数的东西才停止,比Number()的要求低一些,Number()是要求字符中不能有不可转为整数的东西,否则返回NaN
。
parseInt('324abc') //324
Number('324abc') //NaN
parseInt()和Number()都能自动过滤字符串前后的空格。
parseInt('tvr12.34n') //12
Number('tvr12.34n') //12.34
3.parseFloat()
将其他数据类型转为浮点型的Number。
parseFloat('1.23abc') //1.23
Number('1.23abc') //NaN
4.减去0
'1'-0 //1
这一种方法比较简单,老司机常用。
5.前面加加号'+'
+'1' //1
+'.1' //0.1
+'-1' //-1
转为String类型
1.String()
String(undefined) //'undefined'
String('null') //'null'
2.toString()
(123).toString() //'123'
{1:2}.toString() //'[object Object]'
//对象转成字符串只能得到'[object Object]'
null和undefined没有toString()方法,因此会报错。
3.加空字符串
1+'' //'1'
null+'' //'null'
obj+'' //'[object Object]'
老司机常用此方法。
转为boolean类型
1.Boolean()
Boolean()将undefined,null,0,NaN,''这五个值转为false,其余都转为true。
2.在前面加!!
!!'123' //true
Number,String,null,undefined,object等类型皆能用此方法转为boolean类型。