记一次导师讲的面试题
问题
求下面输出结果
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