一、let
1.let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
let a=3;//ES6
var a=3;
for (let i = 0; i < 10; i++) {
...
}
console.log(i);//显示未定义
2.let 定义的全局变量都不会放在window下作为属性,解决与window对象的属性冲突问题
let a=3;
console.log(window.a);//显示未定义
3.{}内嵌套,内部可以使用外部let定义的变量
for(let i=0;i<10;i++){
if(i>5){
let c=10;
i+=c;
//能调用到外部的i
}
console.log(i);//显示未定义
3.不存在变量提升
4.暂时性死区
var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
5.不允许重复声明
二、const
常量声明
注意声明对象时,只能保证对象指针地址不变,对象自身的改变不会因此影响
1.常量不允许修改
const EVENT_ID="aaaaa";
EVENT_ID="abc";//报错
2.一般作为初始值,或者永久不需要改的值来使用。目的是为了阻止因为其他使用者改变该值,或者自己不小心改变。
3.常量定义时,必须全部字母大写,用下划线区分。实际代码开发时也会使用小写字母。快速开发时,不会严格遵守代码规范