javascript窗口警报中的消息类型

javascript窗口警报中的消息类型,javascript,Javascript,我试图提醒以下几点: 1. alert(1+1+1+1+1); //output: 5 2. alert('1'+1+1+1+1); //output: 11111 3. alert(1+1+1+1+'1'); //output: 41 4. alert(1+1+'1'+1+1); //output: 2111 有人可以解释警报中的消息类型吗 提前谢谢。好的,在javasciprt中,number+number+number=number(您的案例1) 然而,字符串后面的数字与字

我试图提醒以下几点:

1. alert(1+1+1+1+1);

//output: 5

2. alert('1'+1+1+1+1);

//output: 11111

3. alert(1+1+1+1+'1');

//output: 41

4. alert(1+1+'1'+1+1);

//output: 2111
有人可以解释警报中的消息类型吗


提前谢谢。

好的,在javasciprt中,number+number+number=number(您的案例1)

然而,字符串后面的数字与字符串连接,并产生一个字符串作为输出'1'+1='11'+1='111',依此类推。(你的情况2)

在第三种情况下,字符串正好出现在数字的末尾,该数字被转换为字符串,结果将是数字后跟字符串形式的字符串。。2+'432'='2432'


最后一种情况是上述所有1+1=2+'1'='21'+1='211'+1='2111'的混合。Javascript是一种弱类型语言,具有运算符重载。这就是为什么你会有那些“奇怪”的行为

哇,操作员超载。嗯

javascript中的
+
具有多种功能。一个是:
将数字相加
,另一个是
将字符串连接在一起
。这称为运算符重载。与PHP相比,数字相加是
+
,但串接字符串是

运算符重载的最大问题是。如果我们有字符串+数字呢。还是数字+字符串

适用不同的规则:

1+1+1+1+1
这很简单,把5个数字加起来

'1'+1+1+1+1
这是更难的一个。他看到的是一个字符串,因此他将其与下一部分(第二部分
1
)连接起来。然后他继续说。字符串(11)+1,给出字符串(111),依此类推

第三个例子很有趣。他开始把所有的数字相加,直到最后一个
+
符号。它没有数字(4)+字符串(1)。因此,他将数字转换为字符串,并将它们连接在一起

最后一个例子也是如此。如果两个符号中有一个是字符串,
+
符号被解释为一个Contatenation。

我在读w3school的,我认为这与你的问题有关

它说:

当JavaScript试图对“错误”的数据类型进行操作时,它将尝试将值转换为“正确”类型

它说,结果并不总是你所期望的:

5 + null    // returns 5         because null is converted to 0
"5" + null  // returns "5null"   because null is converted to "null"
"5" + 1     // returns "51"      because 1 is converted to "1"  
"5" - 1     // returns 4         because "5" is converted to 5

我不明白你在问什么。你是在问类型合并吗?或者警报函数是如何工作的?2 3 4是通过字符串输出的,1是通过数字输出的。我在问有关数据类型转换的问题。。。。这个解释是完全正确的。这与“错误”的数据类型无关,但更多的是解释器切换类型,以获得更好的性能和填充。这是用外行的术语来解释的。duh,我知道你的高级,但请更体谅仍在学习的开发人员。如果你说太多行话,看起来很聪明。你一点帮助都没有!