强制类型转换(显示转换),全局对象中提供的类型强制转换方法:
- parseInt( )
- parseFloat( )
- Number( )
- String( )
- Boolean( )
自动类型转换(隐式转换)
- 当预期效果为字符串时,系统会自动将数据转为string
- 当预期效果为数字时,系统会自动将数据转为number
- 当预期效果为布尔型时,系统会自动将数据转为boolean
Number( )
- 基本数据类型转换为数值
数值:转换后还是原来的值
字符串:如果可以被解析成数值,则转换为相应的数值,否则为NaN。空字符为0
布尔值:true转为1,false转为0
undefined:转为NaN
NULL:转为0
- 引用数据类型转换为数值
如果是封装类型,就先转为基本数据类型,按上面的方式转换
如果不是封装类型,先调用对象的valueOf方法,得到其本身,再调用toString方法得到字符串”[object Object]”,最后调用Number方法,将这个字符串转换额为NaN。
String( )
- 基本数据类型和特殊值转化为字符串,在两边加引号即可。
数值:转为相应的字符串。
字符串:转换后还是原来的值。
布尔值:true转为“true”,false转为“false”。
undefined:转为“undefined”。
null:转为“null”。
- 引用数据类型转换为字符串
非封装类型。先调用 toString(),得到“[object Object]”字符串,再进一步调用valueOf方法,得到字符串本身。
Boolean( )
除了以下几个值,都会转换为true: (包括{ } [ ])
- undefined
- null
- -0
- +0
- NaN
- “”(空字符串)
数据类型转换为布尔型:
- 利用 !! console.log(typeof !!num);
- 利用Boolean()