函数体--预处理以及指令序言

function 声明

在全局(脚本、模块和函数体),function 声明表现跟 var 相似,不同之处在于,function 声明不但在作用域中加入变量,还会给它赋值

function 声明出现在 if 等语句中的情况有点复杂,它仍然作用于脚本、模块和函数体级别,在预处理阶段,仍然会产生变量,它不再被提前赋值

class 声明

class 声明在全局的行为跟 function 和 var 都不一样。在 class 声明之前使用 class 名,会抛错

class 声明也是会被预处理的,它会在作用域中创建变量,并且要求访问它时抛出错误。class 的声明作用不会穿透 if 等语句结构,所以只有写在全局环境才会有声明作用

指令序言机制

"use strict"是 JavaScript 标准中规定的唯一一种指令序言,但是设计指令序言的目的是,留给 JavaScript 的引擎和实现者一些统一的表达方式,在静态扫描时指定 JavaScript 代码的一些特性。

此文章为3月Day20学习笔记,内容来源于极客时间重学前端》,推荐该课程。

猜你喜欢

转载自blog.csdn.net/qq_38526167/article/details/129659341