ES6中的原始值和引用值
定义
ES将数据划分为:原始值和引用值。
1.原始值:表示单一的数据,如10,“abc”,true等。
ES设计了6种原始值:Undefined、Null、Boolean、Number、String和Symbol。
保存原始值的变量是按值访问,操作存储在变量内存中的实际值
2.引用值:表示有多个值(原始值或其他引用值)构成的对象。
要注意的是实际操作对象时,访问的是保存对象的内存地址,即该对象的引用。
特点
动态属性:
原始值是不可改变的。引用值(对象)可以随时添加、修改和删除其属性和方法。且原始值不能有属性
第二行的引用执行完之后该值就销毁了
值传递
原始值和引用值传递本质上是没有区别的,都是将一个变量中的信息复制给另一个变量
确定值类型
通过typeof操作符来判断一个值的类型。
可以看出typeof对于引用值意义不大,因此通常采用instanceof操作符,判断引用值是否为某个构造函数的实例。
基本包装类型
为了方便操作原始值,ES提供了3中特殊的引用类型:Boolean、Number和String。
每当用到某个原始值的方法或属性时,后台会创建一个相应的原始值包装类型的对象,从而暴露出操作原始值的各种方法。
要注意的是在创建完实例并且调用之后会销毁该实例。