wordpress中文主题站,深圳华强北电子市场,建设银行湖北省分行 网站,dw做网站环境配置在 JavaScript 中#xff0c;变量的作用域是由作用域链#xff08;Scope Chain#xff09;来确定的。作用域链是指变量在执行期间访问的作用域的链式结构。
JavaScript 中的作用域分为全局作用域和局部作用域#xff08;函数作用域和块级作用域#xff09;。
全局作用域…在 JavaScript 中变量的作用域是由作用域链Scope Chain来确定的。作用域链是指变量在执行期间访问的作用域的链式结构。
JavaScript 中的作用域分为全局作用域和局部作用域函数作用域和块级作用域。
全局作用域全局作用域是在代码中所有函数之外声明的变量的作用域。在浏览器中全局作用域通常是指 window 对象。全局作用域中的变量可以被程序中的任何部分访问。函数作用域函数作用域是在函数内部声明的变量的作用域。每当函数被调用时都会创建一个新的函数作用域。函数作用域中的变量只能在函数内部访问外部作用域无法访问函数内部的变量。块级作用域在 ES6 引入了块级作用域使用 let 和 const 关键字声明的变量具有块级作用域。块级作用域是指由 {} 括起来的代码块内部声明的变量的作用域。在块级作用域中声明的变量只能在块级作用域内部访问外部作用域无法访问块级作用域中的变量。
当访问一个变量时JavaScript 引擎会先在当前作用域中查找该变量如果找不到则会向上一级作用域继续查找直到找到该变量或达到全局作用域。这样形成的链式结构就是作用域链。作用域链的顶端是当前执行上下文的变量对象最底端是全局作用域的变量对象。
使用 var 声明的变量在函数作用域中具有提升Hoisting的特性即变量的声明会被提升到函数的顶部但赋值操作仍然保留在原来的位置。而使用 let 和 const 声明的变量则不会有提升的特性并且具有块级作用域。