1、let和var的异同
(1)不同之处
js块级作用域:
使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到。
{
var x = 2;
}
// 这里可以使用 x 变量
let 声明的变量只在 let 命令所在的代码块 {} 内有效,在 {} 之外不能访问。
{
let x = 2;
}
// 这里不能使用 x 变量
循环作用域:
使用var在循环体内定义的变量可以作用于循环体内外,而使用let在循环体内定义的变量只作用于循环体内。
(2)相似之处
在函数体内使用var和let关键字声明的变量有点类似,它们的作用域都是局部的,例如
// 使用 var
function myFunction() {
var carName = "Volvo"; // 局部作用域
}
// 使用 let
function myFunction() {
let carName = "Volvo"; // 局部作用域
}
都只在作用于函数体内。
在函数体外使用var和let关键字声明的变量也有点类似,它们的作用域都是全局的,例如:
// 使用 var
var x = 2; // 全局作用域
// 使用 let
let x = 2; // 全局作用域
注意:在JS中,let是在ES6