一、作用域
在Javascript中,作用域是指访问变量、函数的代码的范围。根据变量的定义位置,作用域可以分为全局作用域、局部作用域。
1.全局作用域
全局作用域是指在代码内部的任何地方都可以访问到的变量。我们可以在任何地方访问和修改全局作用域的变量,这种方式对变量的维护管理不利,并且容易引起变量名冲突。
示例代码:
var name = "Tom"; // 全局作用域
function showName() {
console.log(name); // 可以访问全局作用域的变量
}
showName(); // 输出 "Tom"
2.局部作用域
局部作用域是指在代码内部某个固定区域可以访问到的变量,一般是通过函数定义实现。局部作用域内的变量只有在局部作用域内部才能被访问到。
示例代码:
function showName() {
var name = "Tom"; // 局部作用域
console.log(name); // 可以访问局部作用域的变量
}
showName(); // 输出 "Tom"
console.log(name); // 报错:name未定义
二、块级作用域
在ES6之前,Javascript只有全局作用域和函数作用域,缺少了块级作用域的概念。块级作用域指的是在代码块内部定义的变量,在代码块外部无法访问。
示例代码:
if(true) {
var name1 = "Tom"; // 局部作用域失效
let name2 = "Jerry"; // 块级作用域
}
console.log(name1); // 输出 "Tom"
console.log(name2); // 报错:name2未定义
在上面的代码中,对于使用var定义的变量name1,它的作用域扩展到了代码块外部;而对于使用let定义的变量name2,它的作用域限制在了代码块内部,在外部无法访问。这种作用域的限制可以避免变量名冲突问题,提高了代码的可维护性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript中的作用域及块级作用域 - Python技术站