Javascript隐式转换
js隐式转换
隐式转换定义
在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算。这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换。例如1 > "0"
这行代码在js中并不会报错,编译器在运算符时会先把右边的"0"
转成数字0
然后在比较大小。
隐式转换规则
类型 | 符号使用 |
---|---|
转成string 类型 |
+ (字符串连接符) |
转成number 类型 |
++ -- (自增自减运算符) + - * / % (算术运算符) > < >= <= == != === !=== (关系运算符) |
转成boolean 类型 |
!(逻辑非运算符) |
隐式转换需要注意的
"+"
两边只要有一边是字符串,则为字符串连接符,只有两边都是数字时候,才是算数运算符,下同
1 | console.log(1+"true");//"1true" |
关系运算符有一边是字符串的时候,会先转成Number,然后再比较
1 | console.log("2">10);//false |
同时为字符串时,都转成Number,之后比较,注意按照字符的Unicode码来转换数字。
我们可以使用**”.charCodeAt()”**来查看Unicode编码数字大小。
1 | //2.charCodeAt()=50 10.charCodeAt()=49 |
复杂数据类型在隐式转换时会先转成String,然后再转成Number运算
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CHUYUXUAN!
评论