JavaScript 知识巩固——内存、调用函数、回调函数

154 阅读2分钟

数据类型和引用类型

数据类型:null、undefined、string、number、Boolean、symbol

引用类型:object、function、array

什么是内存

就是内存条通电后产生的可存储数据的空间(临时的)

内存条的产生和死亡:内存条(电路板)==》通电==》产生内存空间==》存储数据==》处理数据==》断电==》内存空间和数据都消失

内存分类:

    栈和堆,栈先进先出,堆先进后出

    栈:全局/局部变量(函数名)

   堆:对象(函数)

问题: var a = xxx, a内存中到底保存的是什么?

  • xxx是基本数据, 保存的就是这个数据
  • xxx是对象, 保存的是对象的地址值
  • xxx是一个变量, 保存的xxx的内存内容(可能是基本数据, 也可能是地址值)

var a = 3 //内存保存的是3

var a = function(){...}  // 内存保存的是function的地址值

var b = "5"

var a = b;  //内存保存的是“5”

内存、变量、数据之间的关系

内存是用来存储数据的空间

变量是内存的标识

 

undefined和null区别

undefined代表定义未赋值

null定义并赋值了,只是值为空

什么时候给对象赋值为null

初始赋值,让对象成为null对象

var b = null;

结束前,让对象成为垃圾对象(被垃圾回收机制回收)

var b = ['aa',5];

b = null;

 

如何调用执行函数

test():直接调用

obj.test():通过对象调用

new test():new 调用

test.call/apply(obj):临时让test成obj的方法进行调用

 

什么样的函数才是回调函数

  1. 你定义的
  2. 你没有调用的
  3. 但最终执行了

常见的回调函数

  • DOM事件回调函数
  • 定时器回调函数
  • Ajax回调函数
  • 生命周期回调函数