let,const

70 阅读1分钟

变量声明的过程:变量的声明分为三个阶段:创建(create),初始化(initialization)和赋值(assignment).创建也就是在内存图中的不知名区创建一个变量名,初始化是把将变量赋值为undefined,赋值指等号有右边的值赋值给变量.

let的特性有以下几点:

  1. let 声明的变量是支持块级作用域的,而var没有此限制。
var a= 1
window.a===a // true
let b =1
windw.b===b // false
{let i=0}
console.log(i) // 报错

let1.png 说明没有完成创建

  1. let 不能重复声明已存在的变量

  2. let 有暂时死区,不会被提升。let的不会提升指是初始化和赋值不会被提升.而var会提升创建和初始化的过程,所以下面的代码中,他们的打印的结果是不一样的

        console.log(i)
        console.log(j)
        var i = 1
        let j = 1;

i打印出了undefined,说明完成了初始化。j出现了报错,说明没有完成初始化

let.png

  1. let与for语句的搭配

for(let i=0 ;i<arr.length;i++){}for语句的括号给let形成了一个块级作用域,所以语句与let i=0;for( i=0 ;i<arr.length;i++){}是大不相同的.

const与let相似,但是

  • const声明的变量只可读