数据类型

136 阅读1分钟

类型

原始类型

Null、Udnefiend、Boolean、Number、String、Symbol

特点:

  • 不可变性
  • 大小固定不变
  • 空间较小
  • 直接操作保存的数据,效率高
  • 系统自动分配

比如

var str = 'ConardLi';
str += '6'
console.log(str); // ConardLi6

image.png 可以看出,是新开了一个空间

再如

var name = 'ConardLi';
var name2 = name;
name2 = 'code秘密花园';
console.log(name); // ConardLi;

image.png

对象类型

Object和特殊对象:Array、Function

特点:

  • 可变
  • 值大小不定,可动态调整
  • 空间较大,效率低
  • 无法直接操作内部存储,使用引用地址存储
var obj = {name:'ConardLi'};
var obj2 = obj;
obj2.name = 'code秘密花园';
// obj中的name属性也被改了
console.log(obj.name); // code秘密花园

image.png

值传递和引用传递

ESMAScript中所有函数的参数都是按值传递

按值传递:无论是原始类型还是对象类型,都是将参数复制一个副本到局部变量中,只不过原始类型是新的空间,引用类型的副本是指向内存中的地址的。