为什么 JavaScript 允许它对字符串类型的数字进行数学运算?
Why is JavaScript allows it to do mathematical operations with a string type number?
const num1 = 10;
const num2 = "10";
console.log(num1 * num2); // Output: 100
console.log(num2 * num2); // Output: 100
Javascript 有一个名为 type coercion 的特性,允许将一种类型的值隐式 转换为操作可接受的类型。
在"10" * 10
中,JS知道字符串和数字相乘没有意义,所以会自动把字符串转成数字
(然而,在"10" + 10
中,JS将+
视为字符串连接操作并产生"1010"
。)
const num1 = 10;
const num2 = "10";
console.log(num1 * num2); // Output: 100
console.log(num2 * num2); // Output: 100
Javascript 有一个名为 type coercion 的特性,允许将一种类型的值隐式 转换为操作可接受的类型。
在"10" * 10
中,JS知道字符串和数字相乘没有意义,所以会自动把字符串转成数字
(然而,在"10" + 10
中,JS将+
视为字符串连接操作并产生"1010"
。)