对js来说还是个新手,同时也在努力帮助我年轻的侄子学习。我在解释字符串和数字,以及我们不能用字符串做数学。我解释了+运算符如何连接字符串,因此"3“+ "3”会导致"33“。
但随后我们测试了其他运算符,如*,并获得了正确的结果?我在期待一个错误?并且不能解释为什么它能工作!所以我在这里来找出为什么下面的代码可以工作…
function sum(n) {
  var result = n * n;
  console.log(result);
}
sum("3");为什么控制台输出9?
非常感谢!
发布于 2021-07-31 20:50:00
您看到的行为与此类操作的EMACScript描述一致:https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-applystringornumericbinaryoperator
如果运算符不是+,则认为该运算是数值运算,并尝试转换参数。
https://stackoverflow.com/questions/68605596
复制相似问题