- let 与const 延申一道面试题:ES6新推出的let 与const 这两个方法与之前的var有什么区别
- 以前声明变量一直使用的var关键字来声明变量
- 在ES6的时候多了两个关键字let / const 也是用来声明变量
- 语法:let 变量名; const 变量名;
- 和var的区别
- 1.let和const 不允许重复声明变量
- 2.let和const 声明变量的时候不会出现变量提升
- 3.let和const 声明变量会被所有的代码块 {} 限制作用范围
- let 和 const的区别
-
- let 声明的变量的值可以改变,const 声明的变量的值不可以被改变,所以我们也把const声明的变量叫做"常量"
-
- let 定义的变量可以不赋值,但是 const 定义的变量 必须赋值
-
- 变量提升:
- 在定义之前去使用这个变量时,如果是通过var这个关键字定义的变量,那么就会出现变量提升,
- 也就是说能用这个变量,但是没有实际的值,得到的值为undefined
- 但是如果是通过let或者const定义的变量则不会出现变量提升,也就是说在定义前使用变量,浏览器会报错
let a = 100 //通过let关键字定义一个变量a,并赋值为10o
const b = 200 //通过const 关键字定义一个变量b,并赋值为200
var c = 300
// 1.let和const 不允许重复声明变量
// var a = 100
// var a = 999
// console.log(a)// 999
// let b = 100
// let b = 100
// const c = 100
// const c = 200
// 2.let和const 声明变量的时候不会出现变量提升
// console.log(a) // undefined
// var a = 100
// console.log(a) //100
// console.log(b) //报错
// let b = 100
// console.log(b) //100
// console.log(c) //报错
// const c = 100
// console.log(c) //100
// 3.let和const 声明变量会被所有的代码块 {} 限制作用范围
// if(true) {
// var a = 100
// let b = 200
// const c = 300
// }
// console.log(a) //100
// console.log(b)
// console.log(c)
// 1. let 声明的变量的值可以改变, const 声明的变量的值不可以被改变,所以我们也把const声明的变量叫做"常量"
// let a = 100
// a = 'QF001'
// console.log(a) //QF001
// const b = 200
// b = 'QF666'
// console.log(b) //报错
// 2. let 定义的变量可以不赋值,但是 const 定义的变量 必须赋值
// let a;
// a = 'QF999'
// console.log(a) //QF999
// const b;
// console.log(b) //报错