原始值与引用值、基本包装类型:
1、原始值(栈):表示单一的数据,ES设计了6种原始值,undefined、null、boolean、number、string和symbol(做标识),保存原始值的变量是按值访问,即存储在内存中的是实际值;
2、引用值(堆):复合数据(有多个值(原始值或其他引用值)构成的对象),变量里面保存的是引用;
3、动态属性:
(1)原始值本身不能被修改,原始值不能有属性;
(2)对象是可以随时添加、修改和删除属性和方法的;
4、值传递:原始值和引用值传递本质上没有区别,都是将一个变量中保存的信息复制给另一个变量;
5、确定类型:原始值可以用typeof,引用值用instanceof,判断引用值是否为某个构造函数的实例;
6、原始值包装类型:为了方便操作原始值,ES提供了3种特殊的引用类型:Boolean、Number、String,每当用到某个原始值的方法或属性时,后台会创建一个相应的原始值包装类型的对象,从而暴露出操作原始值的各种方法;
7、装箱和拆箱:装箱是指将一个值类型隐式转换成Object类型(使用构造函数);拆箱就是显示转换成值类型(使用valueof()来拆箱);