console.log(i++ + ++i + i)

524 阅读1分钟

记一次导师讲的面试题

问题

求下面输出结果

let i = i
console.log(i++ + ++i +i)

先说结果: 7

从左往右

先运算i++,我们知道它是先使用,再自增的

此时的 i = 1 参与后面的运算

当i++执行完毕,i 此时就为 2

那么在执行 ++i 的时候,就是 ++2

此时就是 1 + ++2     --> 1+3

现在 i = 3

最后进行 +i 的时候就是 +3

所以就是 1 + 3 + 3

收获

在以前i++一直是单行使用

例: i=1         i = i++ + i

然而我误以为当这行代码运行完 i 才自增

就是 i = 1 + 1 一运行完i才自增

正解是 i = i++ + i 这三个字符一运行完就自增了

--> i = 1 + 2