JavaScript的变量、作用域与内存

JavaScript变量是松散的,变量不过是特定时间点的一个特定值的名称。由于没有规则定义变量必须包含什
么数据类型,变量的值和数据类型在脚本生命期内可以改变。这样的变量很有意思,很强大,当然也有
不少问题

一、原始值与引用值

ECMAScript变量包含两种不同类型的数据:原始值和引用值。原始值就是最简单的数据,引用值则是由多个值构成的对象。

保存原始值的变量是按值访问的,因为我们操作的就是存储在变量中的实际值,而引用值是保存在内存中的对象。

由于js不允许直接访问内存位置,也就不能直接操作对象所在的内存空间,所以在操作对象时,实际上操作的时该对象的引用而非实际对象本身。

1、 动态属性

我们可以为引用值添加、修改和删除其属性和方法。原始值不能由属性,尽管尝试给原始值添加属性也不会报错滴。

注意,原始类型的初始化使用原始字面量就可以了,如果使用的是new关键字,则会创建一个object类型的实例,其行为类似原始值。

2、复制值

原始值和引用值在通过变量复制时也有所不同。

关注公众号【前端技术驿站】让我们共同进步吧!我整理了一些实战视频,欢迎来学习!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容