JavaScript操作符优先级:
关于最后3个运算符的优先级比较,下面通过一个实例来具体说明:
var a,b,c;
a = 3,4,5;
b = a--,--a,a;
c = a ? b++ : ++b;
'a= ' + a + ' b= ' + b + ' c= ' + c
alert(a);
alert(b);
alert(c);
答案是:1,4,3
解释:考查(等号“=”、三目运算符“?:”、逗号“,”)的优先级。"?">"=">","
1.首先看第二行:a = 3,4,5;
因为 =的优先级要高于“,” 所以先算a = 3 然后再算a ,4,5,
所以a = 3,4,5这个式子本身的值是5但是a的值是3。是(a=3),4,5
2.再看下一行:b = a--,--a,
相当于b = a--;--a;a;所以b = a-- 之后a = 2 b =3
3.再看第三行:c = a ? b++ : ++b
a不等0为真,所以b++:b=4,而对于c,c=( a ? b++ : ++b),不难退出c=b++=3
所以最后结果是:1,4,3