运算符的优先级与结合性

2019-08-20  本文已影响0人  zooeydotmango

左结合与右结合

有的运算符是左结合的,即运算从左到右执行,如

w = x + y + z;
w = (x + y) + z;    //与上行等同

有的运算符是右结合的

w = x = y = z;
w = (x = (y = z));     //与上行等同
w = a: b: c ? d : e? f : g;
w = a? b : (c? d: (e? f : g));     //与上行等同

常遇到的优先级

 typeof 2*3;//NaN
 typeof (2*3);//"number"
 typeof 2+3;// "number3"
 4++; //ReferenceError: Invalid left-hand side expression in postfix operation
 var a=0,b=0;
 a+++b;//0
 a;//1,++优先级比+高,所以相当于(a++)+b
 b;//0
 a = b == c; //等同于a = (b==c)
 !2*0; //0, 等价于(!2)*0
 1 && 3;
 1 && "foo" || 0;
 1 || "foo" && 0

参考

运算符的优先级

上一篇 下一篇

猜你喜欢

热点阅读