JavaScript数据类型的隐式转换(JS笔记:四)
JS数据类型会发生隐式转换的场景:
- 所有的隐式转换都和运算结果有关。
- 控制台(console)输出结果不存在隐式转换但运算过程中存在隐式转换。
- 页面中(window)全部都是字符串类型并且会发生隐式转换。
隐式转换的规则:
- 数组(Array):默认转为数组展开方式的字符串保留,逗号。
- 对象(Object):默认转为[object Object]。
- 布尔值(Boolean):默认转为number,true转为1,false转为0。
- 字符串为数字(String):遇到运算符时默认转为对应的number,注意:遇到+加号则为字符拼接。
- 字符串为空(string):默认转为number类型值为0。
- 字符串为非空非数字(string):默认转为number类型的NaN,NaN与任意数据运算都为NaN包括本身。
- undefined(未定义):默认转为NaN。
- Null(空):默认转为0。
在数组(Array)和对象(Object)运算过程中的隐式转换规则:
- 当元素为数字时:先隐式转为字符串,再由字符串转为对应当number。(Object---->String---->Number)
- 当元素为非空非数字时:先隐式转为字符串,再由字符串转为对应当NaN。(Object---->String---->NaN(number))
- 规律:就是先将对象或数组转为string类型在按照字符串的隐式转换规则进行转换。
(JS笔记:四 date:2020-11-24)