带有字符串的简单 javascript 数学 - 预计会出现错误但得到“正确”结果?

对 js 还很陌生,还试图帮助教我的小侄子。我正在解释字符串和数字以及我们如何不能用字符串进行数学运算。我解释了 + 运算符如何连接字符串,因此 "3" + "3" 结果为 "33"。

但后来我们测试了其他运算符,例如 * 并得到了正确的结果?我期待一个错误?并且无法解释它为什么起作用!所以我来这里是为了找出为什么下面的代码有效...

function sum(n) {
  var result = n * n;
  console.log(result);
}

sum("3");

为什么控制台输出9?

非常感谢!

lioufei0370 回答:带有字符串的简单 javascript 数学 - 预计会出现错误但得到“正确”结果?

您看到的行为与此类操作的 EMACScript 描述一致:https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-applystringornumericbinaryoperator

如果运算符不是 +,则认为该运算是数字运算并尝试转换参数。

本文链接:https://www.f2er.com/4056.html

大家都在问