基本类型:

  1. undefined(表示变量声明但并未赋值)
  2. string
  3. Boolean
  4. Number
  5. null(是一个空对象指针,表示准备用来保存对象,还没有真正保存对象的值,)
  6. symbol(表示独一无二的值)

引用类型:

  1. Object
  2. Array
  3. function
  4. Date

区别:

  • 基本类型的值是不可变的,引用类型的值是可变的;引用类型值可添加属性和方法,而基本类型值则不可以。
  • 基本类型的比较是值的比较,引用类型的比较是引用的比较
  • 基本类型的变量是存放在栈区的,引用类型的值是同时保存在栈内存和堆内存中的对象
  • 在复制变量值时,基本类型会在变量对象上创建一个新值,再复制给新变量。此后,两个变量的任何操作都不会影响到对方。
  • 而引用类型在创建一个对象类型时,计算机会在内存中开辟一个空间来存放值,我们要找到这个空间,需要知道这个空间的地址,变量存放的就是这个地址,复制变量时其实就是将地址复制了一份给新变量,两个变量的值都指向存储在堆中的一个对象,也就是说,

其实他们引用了同一个对象,改变其中一个变量就会影响到另一个变量。(引出深浅拷贝)
参考网址:https://blog.csdn.net/weixin_...
http://www.cnblogs.com/gromim...


guona
54 声望11 粉丝