首页 > 解决方案 > JavaScript:为什么“1”-“1”会返回 0?

问题描述

我试图在循环后从字符串中减去最后一位,但后来我发现了这个神秘的现象。

当我添加两个数字字符串时,它们会连接:

"1" + "1" // = "11"

但是当我从另一个数字中减去一串数字时,它并没有断定,而是被转换为一个数字:

"11" - "1" // = 10

为什么会这样?减法的结果应该是“1”而不是10吗?有某种一致性不是更好吗?


编辑:这个问题不是下面问题的重复,因为这个问题是询问两个字符串的减法,而不是一个带数字的字符串。

为什么 JavaScript 以不同方式处理字符串和数字之间的加号和减号运算符?

标签: javascriptnumbers

解决方案


减法运算符 (-) 从左侧的数字中减去运算符右侧的数字。

当任一操作数是字符串时,会尝试将字符串转换为数字。

资源


推荐阅读