JavaScript类型强制偏好

时间:2013-11-10 07:23:59

标签: javascript type-conversion

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

1 + "2"

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

我也注意到了

100 + true = 101.

这也是演绎工作。布尔值转换为数字。但是,数据类型转换如何正常工作?

2 个答案:

答案 0 :(得分:2)

您应该看到这篇文章https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals。很容易理解javascript是如何工作的。

在您的第一个示例1 + "2"中,它返回12,因为如果要对两个值求和,则javascript concat整数和字符串。但是如果你想做sum 1+2 = 3因为两个值是整数。如果两个值是字符串和整数,则整数值自动转换为字符串。

在你的第二个例子中,100 + true = 101. 100是整数而true =1则它总和为100+1 =101,因为这两个基本上是整数。

答案 1 :(得分:0)

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