第十二节课
作用域和变量提升
作用域(Scope)的概念
作用域的分类
全局作用域:作用于整个script标签内部,或者作用域一个独立的JS文件。
函数作用域(局部作用域):作用于函数内的代码环境
作用域的访问关系
- 在内部作用域中可以访问到外部作用域的变量,
在外部作用域中无法访问到内部作用域的变量。
- 在内部作用域中可以访问到外部作用域的变量,
变量的作用域
全局变量
局部变量
作用域的上下级关系
全局作用域
变量的声明提前(变量提升)
函数的声明提前
函数作用域
函数中,使用var关键字声明的变量,会在函数中所有的代码执行之前被声明。
函数中,没有用var声明的变量都是全局变量,而且并不会提前声明。
块级作用域
ES6之前没有
- var
ES6+后有
let
const
预编译
执行期上下文
this
this函数内this的指向
箭头函数中this的指向
改变函数内部的this指向
call、applay和bind
call()方法
作用
举例
apply()方法
作用
举例
高阶函数
概念
当函数A接收函数B作为参数,或者把函数C作为返回值输出时,我们称函数A为高阶函数。
通俗来说,高阶函数对其他函数进行操作的函数。
举例
闭包
- 引入
概念
有权访问另一个函数作用域中变量的函数
举例
JS的面向对象
constructor—构造器
prototype——原型
对象的创建
对象字面量
工厂模式 new Object()
利用构造函数
构造函数
原型