变量类型

157 阅读1分钟

JavaScript是一种弱类型脚本语言,所谓弱类型指的是定义变量时,不需要定义是什么类型,在程序运行的过程中会自动进行判断。

ECMAScript中定义了6中原始数据类型,1种复杂数据类型。(6+1)

原始类型、复杂类型

原始数据类型

  1. undefined
  2. null
  3. number
  4. string
  5. boolean
  6. symbol

复杂数据类型

  1. object

判断数据类型的方法

typeof

typeof xxx的取值
  1. undefined
  2. number
  3. string
  4. boolean
  5. symbol
  6. function
  7. object
typeof注意点
  1. typeof null结果为object,实际这是typeof的一个bug,null为原始值,非引用类型
  2. typeof [1,2] 结果是object,结果中没有array这一项,引用类型除了function,其它都是object
  3. typeof Symbol()结果为symbol

instanceof

用于实例和构造函数对应。判断数组:[1,2] instanceof Array

值类型、引用类型

值类型

按值传递,传递时,复制一份。

引用类型

按共享传递,传递时,指向同一片内存空间。

按值传递的类型,复制一份存入栈内存,这类类型一般不占用太多内存,而且值传递保证了器访问速度。 按共享传递,是复制其引用,而不是复制其值,保证过大对象不会因为不停复制内容而造成内存浪费。