JavaScript 中的数据范例
JavaScript 有 5 种简朴数据范例:Undefined、Null、Boolean、Number、String 和 1 种庞杂数据范例 Object 。
基础范例(值范例)
- Undefined
- Null
- Boolean
- Number
- String
庞杂范例(援用范例)
- Object
- Array
- Date
- RegExp
- Function
基础包装范例
- Boolean
- Number
- String
单体内置对象
- Global
- Math
范例检测
- typeof
- instanceof
- Object.prototype.toString.call()
值范例和援用范例在内存中的存储体式格局(绘图申明)
- 值范例按值存储
- 援用范例按援用存储
值范例复制和援用范例复制(绘图申明)
- 值范例按值复制
- 援用范例按援用复制
值范例和援用范例参数通报(绘图申明)
- 值范例按值通报
- 援用范例按援用通报
值范例与援用范例的差异
- 基础范例在内存中占有牢固大小的空间,因而被保存在栈内存中
- 从一个变量向另一个变量复制基础范例的值,复制的是值的副本
- 援用范例的值是对象,保存在堆内存
- 包括援用范例值的变量实际上包括的并非对象自身,而是一个指向该对象的指针
- 从一个变量向另一个变量复制援用范例的值的时刻,复制是援用指针,因而两个变量终究都指向同一个对象
JavaScript 实行历程
JavaScript 运转分为两个阶段:
预剖析
- 全局预剖析(一切变量和函数声明都邑提早;同名的函数和变量函数的优先级高)
函数内部预剖析(一切的变量、函数和形参都邑介入预剖析)
- 函数
- 形参
- 一般变量
- 实行
先预剖析全局作用域,然后实行全局作用域中的代码,
在实行全局代码的历程当中碰到函数挪用就会先举行函数预剖析,然后再实行函数内代码。