当我将 JavaScript 中的整数 (3) 乘以字符串 ("2") 时,控制台显示 6
console shows 6 when i multiply integer (3) into string ("2") in JavaScript
嘿,你能告诉我为什么我添加时会出现这种情况吗
var a = 3
var b = "2"
console.log(a + b ) // 32
以上输出正确
但是当我做减法时它显示
console.log(a - b ) // 1
乘法 (o/p:- 6) 也是一样的,当我除法时输出是 (1.5) 为什么会这样
当我做除加法以外的其他算术运算时
“+”运算符在对字符串进行操作时进行连接。 'b' 变量是一个字符串文字,这就是你得到输出 '32' 的原因。
+
运算符在这个意义上是特殊的。它会添加数字,但如果遇到字符串则连接起来。
但是,像这样的行为对其他操作员来说没有意义。
例如,您希望 "foo" - 2
做什么?还有 "foo" / 3
?把"foo"
分成3份?那么3 / "foo"
呢?
因此,一般规则是 算术运算符总是将它们的参数强制转换为数字,而 加法/连接运算符 (+
) 是唯一的 例外 .
实际上,比较运算符(<
、<=
、>
、>=
)也可以用于字符串,但它们不是算术运算符。
嘿,你能告诉我为什么我添加时会出现这种情况吗
var a = 3
var b = "2"
console.log(a + b ) // 32
以上输出正确 但是当我做减法时它显示
console.log(a - b ) // 1
乘法 (o/p:- 6) 也是一样的,当我除法时输出是 (1.5) 为什么会这样 当我做除加法以外的其他算术运算时
“+”运算符在对字符串进行操作时进行连接。 'b' 变量是一个字符串文字,这就是你得到输出 '32' 的原因。
+
运算符在这个意义上是特殊的。它会添加数字,但如果遇到字符串则连接起来。
但是,像这样的行为对其他操作员来说没有意义。
例如,您希望 "foo" - 2
做什么?还有 "foo" / 3
?把"foo"
分成3份?那么3 / "foo"
呢?
因此,一般规则是 算术运算符总是将它们的参数强制转换为数字,而 加法/连接运算符 (+
) 是唯一的 例外 .
实际上,比较运算符(<
、<=
、>
、>=
)也可以用于字符串,但它们不是算术运算符。