Let,Const,Var 区别

613 阅读1分钟

let(块级作用域): 局部参数定义,改变量只能用于申明他的模块之中。 对于闭包来说,若在闭包中使用变量,var申明的变量会随着外层变化而变化。

第一个方法对应的输出是[10,10,10,10,10,10,10,10,10,10], 第二个对应的输出是[0,1,2,3,4,5,6,7,8,9,10] 可参考使用这两个参数。

var(全级作用域): 存在着变量提升。JS中变量会预解析,所谓的预解析就是:在当前作用域中,JavaScript代码执行之前,浏览器首先会默认的把所有带var和function声明的变量进行提前的声明或者定义。

注意点:
函数声明的优先级高于变量声明。
函数提升只会提升函数声明,而不会提升函数表达式。

const(块级作用域): const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改。

注意点:
    声明时必须进行初始化
    静态变量对于常量来说是不可更改的,但是对于对象来说,其中的属性值是可更改的,不变的是地址。