let 、var和const的区别

在当前执行上下文代码执行之前,首先会吧所有带var或者function关键字声明或者定义(带var的只是提前声明,带function会提前声明+定义)

在项目中函数尽量用函数表达式来实现,这样防止其提前变量提升

let 、var和const的区别_第1张图片

① var :变量提升 let 不会变量提升

② 全局变量对象VO(G)中声明的变量(用var声明的),也会给全局对象GO中增加一个对应的属性,但是用let声明的变量不存在这个特点:

let 、var和const的区别_第2张图片

let 、var和const的区别_第3张图片

③ var 可以重复声明变量,执行阶段不会再重新声明, let 词法解析都过不去,也就不存在引擎执行代码的阶段

例题:
let 、var和const的区别_第4张图片

let 、var和const的区别_第5张图片

let块级作用域
let 、var和const的区别_第6张图片

let 和 const的区别
let 创建的变量可以更改他的指针(也就是可以重新赋值的)
const 创建的变量不可以改变他的指针(不可以重新赋值 )

你可能感兴趣的:(javascript,前端,es6)