您的位置:首页> 前端教程> JS教程
文章导航

JavaScript 左值与右值

2018-11-6 10:53| 作者: admin| 查看: 1044| 评论: 0|来自: 蚂蚁部落

编程中,很多概念虽然编写者已经在使用,但自己并没有意识到。

生活中也有很多类似的例子,比如著名的苹果落地现象。

很少人去思考原因,因为大家会觉得这是理所当然的事情。

学过相关物理知识之后,才知道是万有引力原因导致。

下面进入本文的主题,首先看一段代码实例:

[JavaScript] 纯文本查看 复制代码
num=5;

上面代码实在是太简单了,为变量num赋值为5。

这其中就涉及到左值(L-value)与右值(R-value)概念的应用,即便不知道不影响代码的使用。

但是多一点的知识储备,会让人更加通透一点。

一.左值与右值概念理解:

左值与右值是以等号隔开,从外观可以理解如下:

(1).在等号左边为左值。

(2).在等号右边为右值。

但是上述理解过于肤浅,下面做一下深入介绍。房子具有两个重要属性:

(1).房子地址。

(2).房子中住的人。

计算机内存与房子类似,它也具有两个类似属性:

(1).内存地址。

(2).内存中的数据。

那么左值侧重于地址,而右值侧重于值。

于是L-value中的L理解为location,R-value中的R理解为read更为合适。

二.代码实例分析:

[JavaScript] 纯文本查看 复制代码
num=5;

将数字5存储到num所指向的内存中。

[JavaScript] 纯文本查看 复制代码
b=a;

左值侧重地址,右值侧重数据。

那么就是将a地址中的数据存储到b地址内存中。

[JavaScript] 纯文本查看 复制代码
5=b;

上述代码会报错,这是因为5是一个数字直接量,无法从中获取地址。

所以无法将b地址内存中的数据赋值给一个无地址的东西。

最后总结:

(1).左值是接收数据的地方,所以侧重于地址。

(2).右值是读取数据赋值给另一个地址内存,所以它侧重数据。

虽然对于左值或者右值理解与否大多数情况下不会对编程产生影响,但是对于它的掌握,能够让我们透过现象看透本质,加深对代码的理解,也许它是其他概念中的一环,所以多掌握一个知识点,可能就相当于多了一条到达目的地的路。

2

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (2 人)

最新评论

返回顶部