ES6中的let关键字
-
- ES6中的let
- const关键字
ES6中的let
- 作用
- 与var类似 ,用于声明一个变量 特点
- 在块作用域内有效(块作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域)
- 不能重复声明
- 不会预处理,不存在变量提升 应用
- 循环遍历加监听
- 使用let取代var是趋势
举例:
let name="Tom";
let name="Jack";
不能重复声明

不会预处理,不存在变量提升
console.log(uname); //undefined
var uname="Tom";
console.log(username); //报错
let username="jack"
在块作用域内有效
<button >1</button>
<button >2</button>
<button >3</button>
for (var i = 0; i < btns.length; i++) {
var btn=btns[i];
btn.onclick=function (){
//点击任意按钮都为3
alert(i);
}
};
//使用块作用域 let
for (let i = 0; i < btns.length; i++) {
var btn=btns[i];
btn.onclick=function (){
//弹出对应内容
alert(i);
}
};
在块 {} 内let声明的变量无法从块外访问:
{
let x = 10;
}
console.log(x);
通过 let 关键词定义的全局变量不属于 window 对象:
let num=30;
console.log(window.num); //undefined
const关键字
- 作用
- 定义一个常量 特点
- const 定义的变量与 let 变量类似,但不能重新赋值 应用
- 保存不用改变的数据
const PI = 3.141592653589793;
PI = 3.14; //出错
const没有定义常量值。它定义了对值的常量引用。
因此,我们不能更改常量原始值,但我们可以更改常量对象的属性。
//可以更改常量对象的属性
const car = {type:"porsche", model:"911", color:"Black"};
// 可以更改属性:
car.color = "White";
// 可以添加属性:
car.owner = "Bill";
在同一作用域或块中,不允许将已有的 var 或 let 变量重新声明或重新赋值给 const
var x = 3; // 允许
const x = 3; // 不允许
{
let x = 3; // 允许
const x = 3; // 不允许
}