var a = [1,2,3,4];
var i = 1;
console.log(a[i++]);//2
console.log(a[i++]);//3
为什么第一个输出是2,而不是3呢?
var a = [1,2,3,4];
var i = 1;
console.log(a[i++]);//2
console.log(a[i++]);//3
为什么第一个输出是2,而不是3呢?
这是执行顺序的问题,i++
在后为 先赋值,后运算++i
在前为 先运算,后赋值
所以看起来像这样
var i = 1
console.log(i) // i=1
i = i + 1 // = 2
console.log(i) // i=2
i = i + 1 // = 3
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]);
13 回答12.9k 阅读
7 回答2k 阅读
3 回答1.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答941 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
i++是后加 先返回i值,再给i+1,意思是console.log(a[i++]);//2
这句先执行console.log(a[i]);然后再i = i+1;
搜一下前加 后加