首页 > 互联资讯 > 建站教程  > 

JavaScript,作用域的相关知识点有哪些?

在 JavaScript 中关于作用域相关的内容至少需要了解以下几部分:

作用域

作用域是指变量和函数在脚本中可访问的范围

全局作用域

全局作用域是整个 JavaScript 程序的顶级作用域,所有在全局作用域中定义的变量和函数都可以在整个程序中访问var globalVariable = "我是全局变量"; function globalFunction() { console.log("我是全局函数"); } console.log(globalVariable); // "我是全局变量" globalFunction(); // "我是全局函数"

函数作用域

函数作用域是每个函数的独立作用域,函数中定义的变量和函数只能在函数内部访问function outerFunction() { var outerVariable = "我是外部变量"; function innerFunction() { console.log(outerVariable); } innerFunction(); } outerFunction(); // "我是外部变量" console.log(outerVariable); // ReferenceError: outerVariable is not defined

块级作用域

ECMAScript 6 引入了块级作用域,使用 let 和 const 关键字声明的变量只能在它所在的块级作用域中访问if (true) { let blockVariable = "我是块变量; } console.log(blockVariable); // ReferenceError: blockVariable is not defined

作用域链

JavaScript 中的变量查找是通过作用域链进行的,如果在当前作用域中未找到变量,就会在父作用域中继续查找,直到找到变量或到达全局作用域为止function outerFunction() { var outerVariable = "我是外部变量"; function innerFunction() { console.log(outerVariable); } innerFunction(); } outerFunction(); // "我是外部变量"

闭包

闭包是指在函数内部定义的函数,它可以访问包含它的函数作用域中的变量function outerFunction() { var outerVariable = "我是外部变量"; return function() { console.log(outerVariable); } } var innerFunction = outerFunction(); innerFunction(); // "我是外部变量"

作用域与变量声明

变量声明的方式不同也会对作用域产生影响,例如 var 声明的变量为函数作用域,let 和 const 声明的变量为块级作用域if (true) { var scope1 = "我是函数作用域变量"; let scope2 = "我是块级作用域变量"; } console.log(scope1); // "我是函数作用域变量" console.log(scope2); // ReferenceError: scope2 is not defined

JavaScript,作用域的相关知识点有哪些?由讯客互联建站教程栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“JavaScript,作用域的相关知识点有哪些?