var 与 ES6中的 let、const

首先你要清楚 JavaScript的作用域 变量的提升 常量与变量 一)变量提升 image1-1.png 由上图中可知:let与const的声明没有变量提升,if判断是为了提醒你代码执行前会进行预解析,所以打印的结果undefined 二)同一作用域下 image2-1.png 由上图可知:在同一作用域中let、const 的声明,不能被重复声明 image2-2.png image2-3.png image2-4.png 由上图可知:let 声明变量时可以不用赋值,且可以重新赋值;const 声明常量时,必须赋值,且常量的值不允许更改,复杂数据类型可以更改其属性image2-3.png 三)块级作用域 image3-1.png 当前所在的花括号里,就是一个块级做用域image3-1.png; for 循环时的经典demo image3-2.png 总结 let、const的声明,不会进行变量提升;var可以 let、const的声明,同一作用域中不能被重复声明;var可以 let、const的声明,具有块级作用域 const声明的常量,赋值后不能再修改,复杂数据类型可以更改其属性 ; let和var可以修改 const声明常量时,必须赋值;let和var 声明是可以不用赋值

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):