详细介绍es6的级块作用域
ES6引入了块级作用域,即变量的作用域限定在块级内部。这个特性主要是通过两个关键字let和const来实现的。
let关键字:let声明的变量只在块级作用域内有效。在块级作用域外部无法访问。示例代码如下:
{
let x = 10;
console.log(x); // 10
}
console.log(x); // ReferenceError: x is not defined
const关键字:const声明的变量也只在块级作用域内有效,但是其值是常量,一旦赋值就不能修改。示例代码如下:
{
const x = 10;
console.log(x); // 10
}
x = 20; // TypeError: Assignment to constant variable
- 块级作用域与函数作用域的区别:在ES5中,变量的作用域是函数级的,而在ES6中,块级作用域可以嵌套在函数作用域内。示例代码如下:
function foo() {
if (true) {
var x = 10; // 函数作用域
let y = 20; // 块级作用域
const z = 30; // 块级作用域
}
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined
console.log(z); // ReferenceError: z is not defined
}
- 循环中的块级作用域:在循环语句中使用
let关键字可以创建一个新的块级作用域,每次循环都会创建一个新的变量。示例代码如下:
for (let i = 0; i < 3; i++) {
setTimeout(function() {
console.log(i); // 0, 1, 2
}, 0);
}
以上就是ES6中块级作用域的详细介绍。通过使用let和const关键字,可以更好地控制变量的作用域,提高代码的可读性和可维护性
原文地址: https://www.cveoy.top/t/topic/hJfc 著作权归作者所有。请勿转载和采集!