let ES6的变量声明
let是有作用域的
全局变量:let定义的全局变量都不会放在window下作为属性,解决window对象的属性冲突问题
let a = 3;
console.log(window.a)//此时结果为undefined。
所有写在{}内的let变量他的作用域仅作用于{}内部,外部无法调用。例如if分支解构或者循环解构
let a = 3;
if(a>0){
let b = 10;
a+=b;
}
console.log(b)//外部无法调用b
for(let i=0;i<10;i++){
if(i>5){
let c=10;
i+=c;
}
console.log(i) // {}内嵌套,内部可以使用外部let定义的变量
}
const 定义常量
const EVENT_ID=“aaaaa”;
EVENT_ID=“abc”; // 常量不允许修改
一般作为初始值,或者永久不需要改的值来使用,
目的是为了阻止因为其他使用者改变该值,或者自己不小心改变
如果定义对象为常量将不能被删除
这样写害怕用户改变对象的引用关系
常量定义时,必须全部字母大写,用下划线区分
然而有时候会发现定义的常量名是小写的
因为太多,而且快速开发,也完全不遵守代码规范