变量作用域
变量作用域
- JavaScript 的函数可以嵌套,内部函数可以访问外部函数定义的变量,反之则不行。
var
和let
创建的变量区别在于:var
声明的变量作用域为最近的函数块,let
声明的变量作用域为最近的闭合块,往往小于函数块。var
声明的变量会被提升到作用域的头部,但是赋值不会被提升,在实际声明前使用会抛出undefined
。let
声明不受变量提升的约束,这意味着let
声明不会被提升到当前执行上下文的顶部。在块中的变量初始化之前,引用它将会导致 ReferenceError(而使用 var 声明变量则恰恰相反,该变量的值是 undefined )。这个变量处于从块开始到 let 初始化处理的”暂存死区“之中。let
声明的变量不能在实际声明之前使用,否则会抛出ReferenceError
异常。
The MIT License (MIT)
Copyright (c) 2019, Roojay.
本文链接:https://roojay.com/pages/7395d6fb/