我试图了解 javascript 的核心工作。我偶然发现的一件事是,当我这样做时
1 + "2"
它返回“12”。但它也可能是 3。我推断可能是因为数字总是可以转换为字符串,但不能将字符串转换为数字。
我也注意到
100 + true = 101.
在这里也可以进行扣除。布尔值被转换为数字。但是数据类型转换究竟是如何工作的呢?
我试图了解 javascript 的核心工作。我偶然发现的一件事是,当我这样做时
1 + "2"
它返回“12”。但它也可能是 3。我推断可能是因为数字总是可以转换为字符串,但不能将字符串转换为数字。
我也注意到
100 + true = 101.
在这里也可以进行扣除。布尔值被转换为数字。但是数据类型转换究竟是如何工作的呢?
您应该看到这篇文章https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals。很容易理解 javascript 是如何工作的。
在您的第一个示例 中,如果您想对两个值求和,1 + "2"
它会返回,因为 javascript concat integer 和 string。12
但是如果你想做sum 1+2 = 3
因为两个值是整数。如果两个值是字符串和整数,那么整数值会自动转换为字符串。
在您的第二个示例中,100 + true = 101.
100 是整数,true =1
然后求和100+1 =101
,因为这两个基本上是整数。
JavaScript 中的+
运算符有两种用途。第一个是添加,第二个是连接。只有当两者都是数字时,JavaScript 才会添加。其他任何东西都会被连接起来。这实际上是 JavaScript 中的一个错误,尚未得到纠正。JavaScript 只会在比较中将字符串转换为数字。