ES6中声明变量 let和const特点
在ES6中新增了let和const
let
特点
- 不会进行变量声明提升
- 会生成暂时性死区
- 变量不允许被重复定义
- 变量不可以被删除
- 在for循环当中用let定义i 循环时可以保存 i 的值
- 在块级元素中用let定义的变量只能在当前块级作用域中使用(注:凡是用{}包裹的都是块级作用域,但是除了对象以外)
对let第四个特点给大家举个小栗子
//若body标签里面有五个button <button>按钮1</button> <button>按钮2</button> <button>按钮3</button> <button>按钮4</button> <button>按钮5</button> // script标签里面我们来个标签绑定一个小事件 <script> var btnArr = document.getElementsByTagName("button"); // 用let定义 i 时点击不同的按钮时,打印的是每个按钮对应i for (let i = 0; i < btnArr.length; i++) { btnArr[i].onclick = function(){ console.log(i); } } // 用var定义 i 时点击不同的按钮时,每个按钮打印的都是 5(即循环后 i 的值,因为事件时异步执行的,但是for循环不会等待异步事件) var btnArr = document.getElementsByTagName("button"); for (var i = 0; i < btnArr.length; i++) { btnArr[i].onclick = function(){ console.log(i); } } <script>
const(声明常量)
特点
- 不会进行变量声明提升
- 会生成暂时性死区
- 必须在初始化时赋值。
- const声明的变量值不允许被修改
- 常量不允许被删除
语雀链接🔗 https://www.yuque.com/suihangadam
归来卧占楼千尺,梦落沧波明月舟。