ES6中let和const如何正确使用,避免变量提升和修改,实现更安全的变量管理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2276个文字,预计阅读时间需要10分钟。
一、提出问题:ES5中只有全局作用域和函数作用域,没有块级作用域,导致某些不合理场景。
二、解决方案:使用let关键字。
三、let基本用法:用法与var和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。
本文共计2276个文字,预计阅读时间需要10分钟。
一、提出问题:ES5中只有全局作用域和函数作用域,没有块级作用域,导致某些不合理场景。
二、解决方案:使用let关键字。
三、let基本用法:用法与var和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。

