i++和++i的问题?

0 0 javascript
™霸气归来@
™霸气归来@

声望值:123 0人

2018-09-27 14:19:17 提问

关注 0关注

收藏 0收藏, 102浏览

var a = [1,2,3,4];
var i = 1;
console.log(a[i++]);//2
console.log(a[i++]);//3

为什么第一个输出是2,而不是3呢?

请先 登录 后评论

5个回答

  • Y_F_Timo130声望 2018-09-25 09:31

    i++是先i后i+1,而++i就是i+1
    请先 登录 后评论
  • hellosweet40声望 2018-09-25 09:31

    算法优先级问题。i++是先把i用了、再+1而++i是先+1以后,再用这个i
    请先 登录 后评论
  • ♣ 五 毛298声望 2018-09-25 09:31

    这是执行顺序的问题,i++在后为 先赋值,后运算++i在前为 先运算,后赋值 所以看起来像这样 var i = 1 console.log(i) // i=1 i = i + 1 // = 2 console.log(i) // i=2 i = i + 1 // = 3
    请先 登录 后评论
  • 闭麦听歌1v9118声望 2018-09-25 09:31

    var a = [1,2,3,4]; var i = 1; //console.log(a[i++]);//2 console.log(a[i]); i = i + 1; console.log(a[i++]);//3 console.log(a[i]); i = i + 1; //console.log(a[++i]); i = i + 1; console.log(a[i]);
    请先 登录 后评论
  • 爬墙丶等红杏79声望 2018-09-25 09:31

    i++是后加 先返回i值,再给i+1,意思是console.log(a[i++]);//2这句先执行console.log(a[i]);然后再i = i+1;搜一下前加 后加
    请先 登录 后评论

世界杯外围投注官网

悬赏追问
10
  • 10
  • 20
  • 50
  • 100
  • 200
  • 输入数值
发布追问