基本用法
ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
{
let a=10;
var b=1;
}
a // ReferenceError: a is not defined.
b // 1
以上代码 var的声明中返回的是正确的值 let的声明则会报错。 这表明let声明的变量只所声明的代码块中有效
for(let i = 0; i < 10;i++){
}
alert(i)//报错
以上代码 计算器i 只能在循环中使用 ,再循环外使用就会报错。
let 不存在变量提升
console.log(a)
var a=10;//undefined
//
console.log(a)
let b=10;//报错
上面代码中,变量a用var命令声明,会发生变量提升,即脚本开始运行时,变量a已经存在了,但是没有值,所以会输出undefined。变量b用let命令声明,不会发生变量提升。这表示在声明它之前,变量b是不存在的,这时如果用到它,就会抛出一个错误。
不允许重复声明
// 报错
function func() {
let a = 10;
var a = 1;
}
// 报错
function func() {
let a = 10;
let a = 1;
}
因此,不能在函数内部重新声明参数。
function func(arg) {
let arg; // 报错
}
function func(arg) {
{
let arg; // 不报错
}
}
网友评论