问题:
定义一个变量
var k = 10;
计算 k+++++k+k+k++?
console.log(k++ + ++k + k + k++)
理解:
1、++表示自增的意思
2、k++ 表示先使用变量值再进行运算
3、++k表示先进行运算在使用变量值
简单来说:k=10时,输出k++为10;输出++k为11。
解决:
1、给k+++++k+k+k++断句
k++ + ++k + k + k++
2、
var k = 10;
console.log(k++); //输出的结果为10
//但此时k=k++=11,k的值已经为11。
继续往下
3、
由2得,k的值为11,在k=11的情况下输出++k
console.log(++k); //输出的结果为12
//此时k的值也为12
将 1的 k++ 与 2的 ++k 相加既得
k++ + ++k = 10+12=22
继续往下
4、由3得 此时k=12
所以k++ + ++k + k = 22+12=34
继续往下
5、由4得 k=12
此时输出k++
console.log(k++); //输出结果为12
所以k++ + ++k + k + k++ = 34+12=46.
所以最后结果是46.
(但是最后k的值已经为13,再继续运算,需要以13 为基础)