在JavaScript中,并没有明确规定左值和右值概念。
但在实际的赋值运算中,也要遵循这个规则,下面就对此概念做一下简单介绍。
左值:
表示一个内存地址值,并且通过这个内存地址,就可以对内存进行读并且写(主要是能写),这也是左值可以被赋值的原因。
右值:
表示是当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值。
总结:简单来说就是,左值相当于地址值,右值相当于数据值。右值指的是引用了一个存储在某个内存地址里的数据。
一个经典的例子:
var s=[];
var arr=s;
for(var i=0;i<3;i++){
var pusher={
value:"item"+i
},tmp;
if(i!==2){
tmp=[]
pusher.children=tmp
}
arr.push(pusher);
arr=tmp;
}
console.log(s[0]);
网友评论