javascript中+与++

最近对这段代码很感兴趣

var y = 1;
var i =1;
var t = y+y+++y+y++;
i +=i+++i+++i;

对上述代码有点疑惑,运算符优先级中前置++和一元加法是同级的,但是后置++优先级是要高些的,加法+和赋值+=优先级是最低的,结果上面t运行从左到后挨个赋值计算的,我再想是不是有+中,代码从左运行到右,然后遇到++这种就先算这种,然后在算+。js运算符优先级前置++是从右到左顺序,后置++是n/a,n/a我不知道撒意思,也忘指点下。不知道理解的对不,期待大神指点一二。不胜感激,一个想学js的小白。

阅读 2.2k
3 个回答

这种题其实没有多大意思,平时写要注意不用。
实在不确定时加括号避免歧义。

var y = 1;
var i =1;
var t = y+(y++)+y+(y++);    // 1+1+2+2
i += (i++)+(i++)+i;    // 1+1+2+3

你要明白, y+ + +y 是不成立的,所以按从左到右的顺序,如果没意外,一般是解读为 y++ +y

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题