js中的数据类型转化
基本类型的转化
Number:
- null 转换为 0
- undefined 转换为 NaN
- true 转换为 1,false 转换为 0
- 字符串转换时遵循数字常量规则,转换失败返回NaN
String:
- null 转换为 ‘null’
- undefined 转换为 undefined
- true 转换为 ‘true’,false 转换为 ‘false’
- 数字转换遵循通用规则,极大极小的数字使用指数形式
Boolean:
除了下述 6 个值转换结果为 false,其他全部为true:
- undefined
- NaN
- null
- -0,0,+0
- ‘’
引用类型的转化
引用类型的转化通过ToPrimitive()来实现,ToPrimitive()会将引用类型转化为原始类型。
ToPrimitive(obj, type)//(需要转化的对象,期望转换的原始数据类型)一般对象的期望默认为Number,Data为String。
期望为number时ToPrimitive()先调用valueOf(),如果没返回原始类型就继续调用toString(),如果还没有返回原始类型就抛出TypeError 异常;
期望为String时则先调用toString(),其他则相同。
自动转化的规则
在进行相关运算时系统会自动帮我们调用相关方法
- 当加法运算有String类型的变量时,基本变量调用String(),引用类型则调用ToPrimitive(),
- 布尔比较时,基本类型调用Boolean(),引用类型同上,
- 其他运算,基本类型调用Number(),引用类型同上;
还没有评论,来说两句吧...