ES6中let和const如何正确运用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2283个文字,预计阅读时间需要10分钟。
一、提出问题:ES5中只有全局作用域和函数作用域,没有块级作用域,导致某些场景下变量作用域不合理。
二、解决方案:使用let关键字。
三、let基本用法:用法和var一样,只是let声明的变量只在let命令所在的代码块有效。
四、示例代码:{ let a=10 }
一、前提
解决ES5中只有全局作用域和函数作用域,没有块级作用域而带来的不合理的场景。
let
基本用法
用法和var 一样,只是let声明的变量只有在let命令所在的代码块有效
{ let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1
可以看出var 声明的变量在代码块之外也是可以调用,而let声明的则调用报错。所以let 声明只在它声明的当前代码块中才能调用。
变量提升
在使用 var 的时候会出现 “变量提升”的现象,即变量可以在声明之前使用,值为undefined。let 改变了这种现状,但是必须先声明在使用,如果在声明之前使用则会出现报错。
本文共计2283个文字,预计阅读时间需要10分钟。
一、提出问题:ES5中只有全局作用域和函数作用域,没有块级作用域,导致某些场景下变量作用域不合理。
二、解决方案:使用let关键字。
三、let基本用法:用法和var一样,只是let声明的变量只在let命令所在的代码块有效。
四、示例代码:{ let a=10 }
一、前提
解决ES5中只有全局作用域和函数作用域,没有块级作用域而带来的不合理的场景。
let
基本用法
用法和var 一样,只是let声明的变量只有在let命令所在的代码块有效
{ let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1
可以看出var 声明的变量在代码块之外也是可以调用,而let声明的则调用报错。所以let 声明只在它声明的当前代码块中才能调用。
变量提升
在使用 var 的时候会出现 “变量提升”的现象,即变量可以在声明之前使用,值为undefined。let 改变了这种现状,但是必须先声明在使用,如果在声明之前使用则会出现报错。

