首先说明var关键字声明变量
var不管在全局作用域或者在局部作用域中,都能被变量提升。顾名思义就是,var定义的变量,都会被提升到定义的该作用域的顶部,原因就是js引擎自动将其提升到顶部。
let和const是块级作用域,即用这两个关键字声明变量的话,变量只能作用在该函数中或者在此时的代码块中
其中let在块级作用域中声明的是变量,只能够在当前的作用域中起作用,没有var中的变量提升这回事。其中let定义变量时,与其他的变量命名都有一样的要求。
const声明的是常量,此时的变量也只会在当前代码块内有效,也不能在当前作用域中重复定义相同的变量,也不存在变量提升。
其中let和const的常量和变量的含义就指针地址能否改变,其中const虽然不能修改其中的指针地址,但是能够修改指针中的内容。