var 声明的变量作用域是函数级别的,而使用 let 声明的变量作用域是块级别的,即限定在花括号内的代码块中。这两个的区别举个例子
时间: 2024-04-29 14:20:47 浏览: 116
在块级作用域内声明函数
好的,关于 var 和 let 的区别,我们可以举一个简单的例子来说明:
```
function example() {
var a = 1;
let b = 2;
if (true) {
var a = 3;
let b = 4;
console.log(a); // 输出 3
console.log(b); // 输出 4
}
console.log(a); // 输出 3
console.log(b); // 输出 2
}
example();
```
在这个例子中,我们声明了一个函数 example,然后在函数体内用 var 和 let 分别声明了两个变量 a 和 b。在 if 语句内部,我们又用 var 和 let 分别声明了两个新的变量 a 和 b。注意到这里 var 声明的变量与函数作用域同级,因此在 if 语句内部给 a 赋值其实是修改了函数作用域内的 a。而 let 声明的变量 b 则只在 if 语句内部有效,出了 if 语句就不存在了。
因此,我们可以说 var 的作用域是函数级别的,而 let 的作用域是块级别的。这也是为什么使用 let 声明的变量可以更好地限制变量的作用范围,避免不必要的命名冲突。
阅读全文