a = i++ 它等价于 a = i ; i = i + 1;(先赋值后自增,返回自增前的值)
a = ++i 它等价于 i = i + 1; a = i;(先自增后赋值,返回自增后的值)
function kk() {
var i = 1;
i = i++;
var j = i++;//j=1
var k = i + ++i * i++; //k=11
console.log(j);
console.log(k);
}
var b=kk()
i++的通俗的解释即是先赋值再自增,其实这里赋值的值是从操作数栈取的值,也就是说先将i的值压入栈中,
而自增是局部变量表的值自增。
而++i则相反,是先自增后赋值,就是局部变量表的自增,然后把局部变量表的值压入栈中。