ES6新增语法关键字 let、const、var区别
浏览器:谷歌 系统:win10(64位) 版本 91.0.4472.114(正式版本)
关键字 定义域范围 特点
-
var 适用于全局 1.可重复声明 2.全局定义
-
···let 块级作用域 1.变量不能重复声明 2 .块级作用域声明 3.变量不会提升(如果声明会出现undefined) 4.不会影响作用域链。
// 声明变量
let a;
let d, b, c;
let e = 100;
let f = 521, g = ‘iloveyou’, h = [];
···
// 1.变量不能重复声明 var 可以
···
let star=‘罗志祥’;
let star=‘小猪’;
···
// 2.块儿级作用域 全局 ,函数,eval
// 循环也不行 for while if else
// var 可以
···{
let girl=‘周扬青’;
}
console.log(girl);
···
// 3.不存在变量提升
···console.log(song);//不报错 浏览器控制台会输出undifined
···
// var song=‘恋爱达人’;
// 但是如果使用let,就会报错
// 4.不影响作用域链
{
let school = ‘羊肉馍’;
function fn() {
console.log(school);
}
fn();
}
let items = document.getElementsByClassName(‘item’);
···
//例子如下:
// 遍历div元素并绑定 如果使用的是var 超出了3 那么就会报错了
··· for (let i = 0; i < items.length; i++) {
items[i].onclick = function () {
// 修改当前的元素背景颜色
items[i].style.background = ‘pink’;
}
}
···
// {
// var i=0;
// }
// {
// var i=1;
// }
// {
// var i=2;
// }
console.log(window.i)
··· ··· -
const 块级作用域 1.常量 2必须附初始值 3.一般常量使用大写(潜规则) 4.常量的值不能更改 5.但是对于数组的常量值可以做 更改(数组的长度和value值都可以做更改)
···
const TEAM = [‘JJJ’, ‘555’, ‘AA’, ‘BBB’];
TEAM.push(‘DDD’);
TEAM.length = 100;
console.log(TEAM);
···