es6之let和const

160 阅读1分钟

应届生找工作太难了,只能总结下知识点来消磨时间了

let和const

let特性

  1. 不存在变量提升
console.log(a)
let a = 1

2. 同一作用域下不能重复声明变量

let a = 1
let a = 100 // 但可以重新赋值 a =100,打印出来的a就是100
console.log(a)

3. 有严格的作用域,每个变量只属于自己的作用域

function func(){  //里面声明的变量属于函数作用域
    let a = 1   
    if(true){  // {}属于块级作用域,与函数作用域的变量互不相干
        let a = 2
    }
    console.log(a)
}
func()

从上面可以看出变量是可以在不同作用域下重复声明的

const特性(在let的基础上做了一点改变)

  1. 声明一个只读的常量,一旦声明,常量的值不可以改变
const a = 1
a = 2 //与let相比const就不能重新赋值了
console.log(a)

  1. 不能只声明不赋值

  2. 常量类型不可以值改变,但引用类型是可以的(Object,Array,Function等)

const obj = {}
obj.a = 1
console.log(obj)