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 运行分为两个阶段:

  • 预解析

    • 全局预解析(所有变量和函数声明都会提前;同名的函数和变量函数的优先级高)
    • 函数内部预解析(所有的变量、函数和形参都会参与预解析)

      • 函数
      • 形参
      • 普通变量
  • 执行

先预解析全局作用域,然后执行全局作用域中的代码,

在执行全局代码的过程中遇到函数调用就会先进行函数预解析,然后再执行函数内代码。


音无
0 声望0 粉丝

下一篇 »
状态码ajax