隐式转换介绍
- 在js中,当运算符在运算时,如果两边数据不统一,CPU 就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算
- 这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换
- 例如
1 > "0"
这行代码在js中并不会报错,编译器在运算符时会先把右边的 "0" 转成数字 0 然后在比较大小。
隐式转换规则
- 转成 string 类型: +(字符串连接符)
- 转成 number 类型:++ --(自增自减运算符)+ - * / % **(算术运算符)> < >= <= == !=(关系运算符)
- 转成 boolean 类型:! !!(逻辑非运算符)
这里值得注意的 + ,它既是连接符,也是运算符。 1. 当 + 两边都有值,且至少一个值是字符串类型,就会出现字符串拼接。2. 当只有 + 后面有值,例如:
+"123"
等同于Number("123")
,会将字符串转换为数字123