JavaScript 运算符与强制类型转换
对于弱类型语言而言,隐式的类型转换永远是个大坑,你永远不知道什么时候会踩到坑。
好不容易做完了课设,到复习期间大概还有那么几天时间,准备稍微看看红宝书——JavaScript高程,当年什么都不懂看到脑袋爆炸,现在虽然表面上看着写写JavaScript已经没什么问题,实际上对于很多东西依旧不是很清楚。
这次就刚看到一个很好玩的东西。
首先:
1.1 + "1.1" // "1.11.1"
+"1.1" + 1.1 // 2.2
"1.1" - 1.1 // 0
1.1 - "1.1" // 0
这里我们大概需要知道的是,如果一个字符串可以转换为数字(内部调用的是Number()
函数),那么在转为数字后可以参与运算了,但是如果是字符串加上数字,那么可以视其为字符串拼接。
比如第一个就是明显的字符串拼接。但是如果加上符号,那么就会先进行一个类型转换,在与后面的数字运算。
而减法不具有拼接效果,因此就是转换啦。