JavaScript奇怪的行为与运算符优先级!!!1.

JavaScript奇怪的行为与运算符优先级!!!1.,javascript,operators,operator-precedence,Javascript,Operators,Operator Precedence,你认为这个表达的结果是什么 var a=10; a=a+(a=5); 控制台日志(a); //a=10? var a=10; a=a+(a=5); 控制台日志(a); /a=10?< /代码> P >为了更好地理解这一点,让我们考虑另一个变量。 案例1 var a=10; a=a+(a=5); console.log(a);//15 a=10; var b=a+(a=5); console.log(a);//5. 控制台日志(b);//15我只是想知道为什么它们是正确的,我并不是说它们不是关

你认为这个表达的结果是什么

var a=10;
a=a+(a=5);
控制台日志(a);
//a=10?
var a=10;
a=a+(a=5);
控制台日志(a);

/a=10?< /代码> P >为了更好地理解这一点,让我们考虑另一个变量

案例1

var a=10;
a=a+(a=5);
console.log(a);//15
a=10;
var b=a+(a=5);
console.log(a);//5.

控制台日志(b);//15
我只是想知道为什么它们是正确的,我并不是说它们不是关于前两个例子的吗?虽然你所有的问题都是基于同一个基本问题(当我在同一个表达式中多次给同一个变量赋值时,运算的顺序是什么?-这首先是一个糟糕的想法),我投票认为这一点过于宽泛,因为它们是独立的问题(而且每个问题都可能有单独的副本)。更容易理解的参考文献:,“括号中的表达式必须首先求值?”这不是括号的意思。我想有人可能会说它们会影响评估的顺序(但这并不一定意味着它们是先评估的,想象一下你有多组括号,它们不可能一起是“第一”)。相反,它们会更改操作数/运算符和运算符的优先级,这会影响求值顺序。例如,
3*4+5
不同于
3*(4+5)
x*y
,即
3
的左侧仍然是首先评估的。不同之处在于计算RHS,
4
vs
4+5
。但是必须首先计算括号中的表达式,我认为运算符优先级是什么意思