var 与 let的 区别
1、let没有预解析性、不存在变量提升。
2、用let关键字声明的变量的作用域只在声明let的块内;
3、在同一个块内不得对同一变量名进行重复申明。
4、父级作用域定义过的变量在子作用域在仍可定义同名变量。
5、
const:定义常量
1、与let特性一致
2、常量声明时必须有值
3、常量声明后不可被修改
4、对象由于是引用数据类型,所以声明常量的对象的属性可以被修改或者新增
5、声明时若使用 const arr = Object.freeze([‘1’,‘2’,‘3’]);
在没有let 和 const之前用IIFE函数来模拟块作用域
(function(){})()