javascript字符串和数字变量

Mai*_*hak 3 javascript converter string-concatenation operator-precedence

以下评估的内容是什么?

"1"+2+4
Run Code Online (Sandbox Code Playgroud)

那这个呢:

5 + 4 + "3"
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,因为"1"是一个字符串,一切都是一个字符串,所以结果是"124".在第二种情况下,它93发生了什么?为什么在一个实例中发生添加,而在另一个实例中发生字符串连接?

var x = "1" + 2 + 4;
var z = 5 + 4 + "3";
console.log(x); // "124"
console.log(z); // 93 
Run Code Online (Sandbox Code Playgroud)

有谁能解释一下?

Arp*_*pit 5

表达式从左到右进行评估.

"1"+2+3
 ^--^
"12" //string  +3
  ^_____________^
 "123"  //string
Run Code Online (Sandbox Code Playgroud)

在第二种情况下

 1+2+"3"
 ^_^
  3+"3"
  ^___^
  "33" // string
Run Code Online (Sandbox Code Playgroud)