原始值与引用值
1:ES将数据换分为:原始值与引用值。
原始值,表示单一的数据,如10,‘abc’,true等,ES设计了6种原始值:Undefined、Null、Boolean、String和Symbot。
引用值,表示有多个值(原始值或其他引用值)构成的对象。ES不允许直接访问对象的内存空间。实际操作时,访问的是保存对象的地址,即该对象的引用。
2:动态属性
原始值是不可更改的
引用值可以随时添加、修改和删除其属性和方法。
原始值不能有属性。
3:确定类型
通过 typeof() 来判断一个值的类型。
let a = 22;
console.log(typeof a)
输出为 number
对于引用值来说,typeof的意义不大,通常采用instanceof操作符,判断引用值是否为某个函数的实例。
4:原始值包装类型
为了方便操作原始值,ES提供了3种特殊的引用类型:Boolean、Number和String。
每当用到某个原始值的方法或者属性时,后台会自动创建一个相应的原始包装类型对象,从而暴露操作原始值的各种方法。
let s1 = "Hello world";
let s2 = s1.substr(0,5);
后台步骤:
1:创建一个包含原始值的String类型实例;
2:调用该实例上的特定方法;
3:销毁改实例;