来自:http://h5monkey.github.io/2015/05/09/ES6%EF%BC%88%E4%B8%80%EF%BC%89/
基本语法
let是块级作用域,函数内部使用let定义后,对函数外部无影响。
// 错误写法 变量提升不可以
console.log(b);
let b = 3;
// 错误写法 变量不可重复赋值
let a = 4;
let a = 5
console.log(a)
1
2
3
4
5
var btns = document.querySelectorAll("button");
for (var i = 0; i < btns.length; i++) {
btns[i].onclick = function() {
console.log(i) //永远等于i=5
}
}
//改变
for (var i = 0; i < btns.length; i++) {
btns[i].index = i;
btns[i].onclick = function() {
console.log(this.index)
}
}
//改变
for (var i = 0; i < btns.length; i++) {
(function(i) {
btns[i].onclick = function() {
console.log(i)
}
})(i);
}
//改变
for (let i = 0; i < btns.length; i++) {
btns[i].onclick = function() {
console.log(i) //let创建出作用域块
}
}
const定义的变量不可以修改,而且必须初始化。
//在循环语句之内是一个父作用域,在循环体中是一个子作用域
//例子:
for (let i = 0; i < 3; i++) {
let i = 10;
console.log(i);
}
console.log(i)
//const声明属性的时候必须赋值
var a;
let b;
const c; //报错
//改变常量的数据
const a = 10;
a = {}; //浏览器会报错 改变数据
const a = {
obj: 10
};
a.obj = 20; //不会报错 只是修改对象数据 没有改变obj的引用
时间: 2024-10-12 21:52:02