手记

【九月打卡】第8天 直面JavaScript中的30个疑难杂症

学习课程名称:直面JavaScript中的30个疑难杂症
章节名称:函数对象(重难点)
讲师姓名:公明2020


课程内容:

  1. 常见函数的四种类型有哪些
  2. 一定要知道的变量和函数提升
  3. 带你深入理解作用域和作用域链
  4. 带你图解执行环境
  5. 开发中重载和多态的使用场景有哪些
  6. 高频面试题闭包的理解
  7. 开发中call、apply、bind的使用
  8. new的执行过程有哪几步
  9. 开发中使用this的坑有哪些

函数的四种类型:
匿名函数
1.匿名函数:定义时候没有任何变量引用的函数
2.匿名函数自调:如果函数只执行一次

优点:节约内存空间,调用前和调用后内存中不创建任何函数对象。

回调函数(callback)
回调函数:如果一个函数作为对象交给其他函数使用

递归函数
递归函数:循环调用函数本身

构造函数
构造函数:构造函数习惯上首字母大写
调用方式不一样。作用也不一样(构造函数用来新建实例对象)

变量声明提升
通过var定义的变量,在定义语句之前就可以访问到;变量的声明会提升到函数的顶部,变量的赋值并不会。

函数声明提升
通过function声明的函数,在之前就可以调用;函数表达式不会进行变量提升,只有函数声明形式才可以。

作用域
作用域可以理解就是一块小的“地盘”一块代码段所在的地方

函数作用域
在函数内部就是局部作用域
函数内部的变量不会与全局作用域变量冲突;执行前会一直存在
调用函数时创建函数作用域,函数执行完毕之后,函数作用域销毁;
每调用一次函数就会创建一个新的函数作用域,它们之间是相互独立的。

作用域链
只要是代码,就有一个作用域,写在函数内部的就叫做局部作用域;
如果函数中还有函数,那么在这个作用域中又可以诞生一个作用域;
当在函数作用域中操作一个变量的时候,会先在自身作用域中查找,如果有就直接使用,如果没有就向上级作用域中寻找。如果全局作用域中也没有,那么就报错。
根据内部函数可以访问可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就称为函数作用域链。

闭包
简单就是定义在一个函数内部的函数,可以使用其他函数的变量。
闭包是一种保护私有变量的机制,函数执行时形成私有作用域,保护私有变量不受外界影响。
内部函数可以使用外部函数的参数和变量,函数和变量不会被垃圾回收机制回收。


0人推荐
随时随地看视频
慕课网APP