JavaScript字符串拼接与加减运算隐式转换问题咨询
JavaScript 字符串与数字加减运算结果差异原理解析
核心原因是 JavaScript 内置的隐式类型转换规则对+和-两个运算符的处理逻辑完全不同:
- 针对
+运算符+有两种作用:算术加法、字符串拼接。只要两个操作数里存在字符串类型,JS 会优先走字符串拼接逻辑,把另一个操作数自动转换为字符串类型后完成拼接。
对应代码console.log("10"+9);,执行时会把数字9转成字符串"9",和"10"拼接后得到"109",最终输出109。 - 针对
-运算符-仅支持算术减法运算,没有字符串相关的重载逻辑。只要操作数不是数字类型,JS 会自动把所有操作数转换为数字类型后再做减法计算。
对应代码console.log("10"-9);,执行时会先把字符串"10"转成数字10,再和9做减法运算10-9=1,最终输出1。
内容的提问来源于stack exchange,提问作者Venkata Shivaram
相关产品推荐
相关产品推荐

