类型转换
类型转换
原始类型
Number、String、Null、Undefined、Boolean、Symbol
原始值 | 转Number | 转String | 转Boolean |
---|---|---|---|
1 | 1 | "1" | true |
0 | 0 | "0" | false |
-1 | -1 | "-1" | true |
"001" | 001 | "001" | true |
"" | 0 | "" | false |
null | 0 | "null" | false |
undefined | NaN | "undefined" | false |
true | 1 | "true" | true |
false | 0 | "false" | false |
特别的转换规则
- 数字vs布尔,布尔转换为数字
- 字符串vs布尔,布尔转换为数字
- 字符串vs数字,字符串转换为数字
- 对象vs布尔,对象转到Number原始类型,因为无法转换,所有只能先toString转String类型
- 当将==应用到null或undefined时,不会发生数字转换。 Null只等于Null或undefined,不等于其他任何东西。 undefined也是
- JSON没有未定义的值,它被替换为空的JSON数据类型
总结
- 两个值作比较的时候,尝试直接转Number,如果不能转则尝试转String,如果还不能转,则抛出TypeError
请斧正
如果有不正确的地方,请在评论区斧正,谢谢