左值(left value)
左值是一个古老的术语,它是指“表达式只能出现在赋值运算符的左侧”,在js中,变量、对象属性和数组元素均是左值。
通俗地说。以赋值符号 = 为界,= 左边的就是左值,= 右边就是右值。int a = b;a为左值,b为右值。更深一层左值a是一个地址,而右值b表示b的值。看看a = b的含义。其实就是 将 "b地址内存里面的数据",放到"a地址内存"中。
b=(a++)+a
- 先计算b
- 计算a++(假设值为c)
- 计算a
- 计算c+a
- 将c+a的值赋值给b
按照 “++”的定义 a++的值为1,即c=1,随后a立即增1,到第3步时a的值为2,所以结果b的为3