(自用面试题)JavaScript变量提升的作用是什么?它导致了什么问题?

103 阅读1分钟

变量提升的定义

变量提升指的是在代码执行之前把变量声明放在当前作用域的最上面,而对变量赋值不进行操作。

为什么要进行变量提升?

  1. 提高性能

如果没有变量提升,那么每次执行代码前都必须重新解析一遍该变量,而这是没有必要的,因为包含该变量的代码并不会改变,解析一遍就够了。

  1. 提高容错性

变量提升使得一些不规范的代码也可以正常执行。

变量提升可能会导致的问题

  1. 内层变量覆盖外层变量。
  2. 用来计数的循环变量泄露为全局变量。