js的左值和右值

在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]);

你可能感兴趣的:(js的左值和右值)