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 声明是可以不用赋值
发表评论 (审核通过后显示评论):