1

我试图了解 javascript 的核心工作。我偶然发现的一件事是,当我这样做时

1 + "2"

它返回“12”。但它也可能是 3。我推断可能是因为数字总是可以转换为字符串,但不能将字符串转换为数字。

我也注意到

100 + true = 101.

在这里也可以进行扣除。布尔值被转换为数字。但是数据类型转换究竟是如何工作的呢?

4

2 回答 2

2

您应该看到这篇文章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,因为这两个基本上是整数。

于 2013-11-10T08:09:49.033 回答
0

JavaScript 中的+运算符有两种用途。第一个是添加,第二个是连接。只有当两者都是数字时,JavaScript 才会添加。其他任何东西都会被连接起来。这实际上是 JavaScript 中的一个错误,尚未得到纠正。JavaScript 只会在比较中将字符串转换为数字。

于 2014-02-27T17:55:37.687 回答