JavaScript 基础知识总结1


数据类型

分类

基本(值)类型

  • String:任意字符串
  • Number:任意数值
  • boolean:true/false
  • undefined:undefined
  • null:null

对象(引用)类型

  • Object:任意对象
  • Function:一种特别的对象(可以执行)
  • Array:一种特别的对象(数值下标,内部数据是有序的 )

判断

  • typeof 返回数据类型的字符串表达(小写)
    • 可以判断:undefined / 数值 / 字符串 / 布尔值 / function
    • 不能判断:null 与 object、object 与 array
  • instanceof 判断对象的具体类型
  • ===
    • 可以判断:undefined / null
  1. 函数高级
  2. 面向对象高级
  3. 线程机制与事件机制

FAQ:

  1. undefined 与 null 的区别?

    • undefined 代表定义未赋值
    • null 代表定义并赋值,值为 null
  2. 什么时候给变量赋值为 null ?

    • 初始赋值,表明将要赋值为对象
    • 结束前,表明该对象不再使用,成为垃圾对象(被垃圾回收器回收)
  3. 严格区别变量类型与数据类型?

    • 数据的类型:
      • 基本类型
      • 对象类型
    • 变量的类型(变量内存值的类型):
      • 基本类型:保存就是基本类型的数据
      • 引用类型:保存地址值

数据、变量与内存

  1. 什么是数据?

    • 存储在内存中代表特定信息的’东东‘,本质上是 0101……
    • 数据的特点:可传递,可运算
    • 一切皆数据
    • 内存中所有操作的目标:数据
      • 算术运算
      • 逻辑运算
      • 赋值
      • 运行函数
  2. 什么是内存?

    • 内存条通电以后产生的可存储数据的空间(临时的)
    • 内存产生和死亡:内存条(电路板)==> 通电 ==> 产生内存空间 ==> 存储数据 ==> 断电 ==> 内存空间和数据都消失
    • 一块小内存的两个数据:
      • 栈:全局变量/局部变量
      • 堆:地址
  3. 什么是变量?

    • 可变化的量,由变量名和变量值组成
    • 每个变量都对应一块小内存,变量名用来查找对应的内存,变量值就是内存中保存的数据
  4. 内存、数据、变量三者之间的关系?

    • 内存用来存储数据的空间
    • 变量是内存的标识

FAQ:

  1. var a = xxx, a 内存中到底保存的是什么?

    • xxx 是基本数据,保存的是这个数据
    • xxx 是对象,保存的是对象的地址
    • xxx 是一个变量,保存的 xxx 的内存内容(可能是基本数据,也可能是地址值)
  2. 关于引用变量赋值问题

    • n 个引用变量指向同一个对象,通过一个变量修改对象内部数据,其他所有 变量看到的是修改之后的数据
  3. 在 js 调用函数时传递变量参数时,是值传递还是引用传递

    • 理解 1:都是值传递(基本/地址值)传递
    • 理解 2:可能是值传递,也可能是引用传递(地址值)
  4. JS 引擎如何管理内存

    • 内存生命周期
      • 分配小内存空间,得到它的使用权
      • 存储数据,可以反复进行操作
      • 释放小内存空间
    • 释放内存
      • ​ 局部变量:函数执行完自动释放
      • 对象:成为垃圾对象 ==> 垃圾回收器回收

视频教程:​尚硅谷 JavaScript 高级教程(javascript 实战进阶)