ES6 系列一:let和const

快来加入我们吧!

"小和山的菜鸟们",为前端开发者提供技术相关资讯以及系列基础文章。为更好的用户体验,请您移至我们官网小和山的菜鸟们 进行学习,及时获取最新文章。

"Code tailor" ,如果您对我们文章感兴趣、或是想提一些建议,微信关注 “小和山的菜鸟们” 公众号,与我们取的联系,您也可以在微信上观看我们的文章。每一个建议或是赞同都是对我们极大的鼓励!

前言

在开始学习之前,我们想要告诉您的是,本文章是对阮一峰《ECMAScript6 入门》一书中 “let 和 const 命令” 章节的总结,如果您已掌握下面知识事项,则可跳过此环节直接进入题目练习

  • 出现原由
  • 什么是暂时性死区?
  • 什么是变量提升?
  • 是什么块级作用域?

如果您对某些部分有些遗忘,👇🏻 已经为您准备好了!

学习链接

let 和 const 的学习

汇总总结

出现原由

在 ES5 中,只有全局作用域函数作用域,没有块级作用域,这带来了很多不合理的场景,比如:内层变量可能覆盖外层变量、用来计数的循环变量泄露为全局变量。所以,let 和 const 实际上引入了“块级作用域”的概念

变量提升

var 命令会发生”变量提升“的的现象,即变量可在声明之前使用,而一般逻辑是先声明变量再去使用变量。故为了纠正此现象,let 命令改变了语法行为,即它所声明的变量一定要在声明后使用。

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

// let 的情况
console.log(bar) // 报错ReferenceError
let bar = 2

块级作用域

块级作用域可通过新增命令 let 和 const 声明,所声明的变量在指定块的作用域外无法被访问。块级作用域在如下情况被创建:

  • 在一个函数内部

  • 在一个代码块(由一对花括号包裹)内部

  • 外层代码块不受内层代码块的影响

function f1() {
   
  let n 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值