在JavaScript中微峰,并沒有明確規(guī)定左值和右值概念沙兰。
但在實際的賦值運算中氓奈,也要遵循這個規(guī)則,下面就對此概念做一下簡單介紹鼎天。
左值:
表示一個內(nèi)存地址值舀奶,并且通過這個內(nèi)存地址,就可以對內(nèi)存進(jìn)行讀并且寫(主要是能寫)斋射,這也是左值可以被賦值的原因育勺。
右值:
表示是當(dāng)一個符號或者常量放在操作符右邊的時候,計算機就讀取他們的“右值”罗岖,也就是其代表的真實值涧至。
總結(jié):簡單來說就是,左值相當(dāng)于地址值桑包,右值相當(dāng)于數(shù)據(jù)值南蓬。右值指的是引用了一個存儲在某個內(nèi)存地址里的數(shù)據(jù)。
一個經(jīng)典的例子:
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]);