JavaScript变量是松散的,变量不过是特定时间点的一个特定值的名称。由于没有规则定义变量必须包含什
么数据类型,变量的值和数据类型在脚本生命期内可以改变。这样的变量很有意思,很强大,当然也有
不少问题
一、原始值与引用值
ECMAScript变量包含两种不同类型的数据:原始值和引用值。原始值就是最简单的数据,引用值则是由多个值构成的对象。
保存原始值的变量是按值访问的,因为我们操作的就是存储在变量中的实际值,而引用值是保存在内存中的对象。
由于js不允许直接访问内存位置,也就不能直接操作对象所在的内存空间,所以在操作对象时,实际上操作的时该对象的引用而非实际对象本身。
1、 动态属性
我们可以为引用值添加、修改和删除其属性和方法。原始值不能由属性,尽管尝试给原始值添加属性也不会报错滴。
注意,原始类型的初始化使用原始字面量就可以了,如果使用的是new关键字,则会创建一个object类型的实例,其行为类似原始值。
2、复制值
原始值和引用值在通过变量复制时也有所不同。
网友评论