个人理解:
- 基本类型:Number、String、Boolean、Null、Undefined — 不能拥有属性和方法的类型
- 引用类型:Function、Array、Object — 拥有属性和方法的类型(对象)
- 基本包装类型:Number、String、Boolean — 属于特殊的引用类型,与基本类型相对应
关系:
-
当声明一个基本类型(Number、String、Boolean)时,后台会创建一个与之对应的引用类型(基本包装类型),从而能够使基本类型调用一些方法和属性。
-
如果声明的是基本类型(Number、String、Boolean),此时在实例上新增的属性或方法只存在一瞬间(一行代码内);
-
如果声明的是引用类型(Number、String、Boolean),此时在实例上新增的属性或方法长久存在;
例:
// 声明基本类型,代码 // 后台对应代码
const str1 = 'hello world' // const str1 = new String('hello world')
str1.color = 'red' // str1.color = 'red'
// str1.color = null (属性消除)
console.log(str1.color) // undefined
// 声明引用类型,代码 // 后台对应代码
const str2 = new String('hello world') // const str2 = new String('hello world')
str2.color = 'red' // str2.color = 'red'
console.log(str2.color) // red
以上是本人对于上述链接中提到的某些问题的个人理解,仅供参考,如有错误,还望大神指正。