所以我正在运行算法,并且遇到了一个我不理解的问题的解决方案。我知道string + string会导致两个字符串的合并,即使这些字符串是类型字符串的数字。我不明白的是,为什么将一个类型为string的数字乘以另一个数字,同时也键入string,会产生一个值,即类型为number。例如:
"8" * "9"的结果是72,类型是数字,但是"8" + "9"给出了"89",是一个字符串。下面的片段显示了这一点:
console.log("8" * "9");
console.log("8" + "9");
乘法符号为什么或如何将字符串转换为数字?
谢谢!
发布于 2021-04-22 16:07:01
这是因为没有为字符串定义*,也就是说,在将字符串乘以另一个字符串时没有意义(和定义),因此,它检查字符串是否为数字(定义了* ),如果是,则将字符串乘以数字(如果不是数字,则输出NaN,而不是数字)。但是,+是为数字和字符串定义的,所以在尝试添加字符串时,它只是添加字符串,而不是检查它们的值是否是数字,因为这样就会对要添加的字符串或数字不明确。
https://stackoverflow.com/questions/67216836
复制相似问题