变量提升

一、变量为什么会提升?

JavaScript代码是先编译再执行,即分为编译阶段执行阶段。编译阶段需要将变量声明提升到作用域顶部,以确保后续代码能正常编译。

执行上下文是 JavaScript 执行一段代码时的运行环境,它定义了变量或函数有权访问的其他数据,决定了它们各自的行为。

每个执行上下文都有三个重要属性:

  • 变量对象

  • 作用域链

  • this 指向

二、同名变量和同名函数

后面的覆盖前面的

输出:(浏览器环境运行,node.js运行报错)

三、变量与函数同名

变量和函数同名,不论谁先声明,函数始终覆盖变量

以上3段代码输出都是:

Last updated