es6基础 let 和const

122 阅读1分钟

在es6中新增了let和const命令

首先先介绍一下块级作用域。其中,在es5中只有全局作用域和函数作用域,没有块级作用域。es6中新增块级作用域,{}为一个块

let

声明变量只在let命令所在的代码块内有效。不允许重复声明。 不存在变量提升,let声明的变量一定要在声明后使用,否则会报错。

//var的情况
console.log(foo); // 输出undefined
var foo = 2;

// let
console.log(bar); // 报错
let bar = 2;

const

只在声明的块级作用域内有效, 不存在变量提升, 存在暂时性死区(TDZ), 不可重复声明

const 一旦声明,常量的值就不能改变,而且必须立即初始化

注: const实质上保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动

es6的变量声明

es5中只有两种声明变量的方法:var 和 function。 es6中除了let和const,还新增了import 和class 。 所以es6有6种声明变量的方法