var、let、const的区别

116 阅读1分钟

什么是块级作用域?

定义:

ES6 中新增了块级作用域。块作用域由 { } 包括,if语句和 for语句里面的{ }也属于块作用域。

为何需要块级作用域?

在ES6之前,函数只能在全局作用域和函数作用域中声明,不能在块级作用域中声明。没有块级作用域导致很多场景不合理
1、内存变量可能覆盖外层变量
2、用来计数的循环变量泄露为全局变量

ES6中的块级作用域:

1、允许块级作用域任意嵌套,外层作用域无法读取内层作用域的变量
2、内层作用域可以定义外层作用域的同名变量
3、不需要立即执行匿名函数

es6的变量声明

ES6中新增letconst来定义变量
var : ES5和ES6中 定义全局变量
let : 来定义局部变量 代替var
const : 定义常量(定义后不可修改)

var、let、const的区别

1. var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
2. let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
3.const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。
	

let 和 const 的作用

1.禁止重复声明
2.支持块级作用域
3.支持修改
相反,用var声明的变量 : 可以重复声明 没有块级作用域.不能限制