从JS作用域来看ES6中的let

作者: 七_五 | 来源:发表于2018-03-26 08:59 被阅读0次

简介

关于ES6中let的介绍网上已经有相当多的博客都写到了,比如支持块级作用域、不存在变量提升等等特性,我这里就从变量的作用域角度来写一篇文章。

作用域

我们现在来看一段代码需求,我们需要只暴露一个b的全局变量,但这个b又会使用到变量a,在ES6之前我们很容易想到用立即执行函数来解决

(function (){
  var a = 1
  window.b = function() {
    console.log(a)
  }
}())
b()

这是一段匿名的立即执行函数,通过执行这段代码可以实现只暴露一个b的全局变量,而变量a是这块函数的自有化变量。

下面我们来看ES6中有了let后,我们可以怎么重构上面的这段代码,来实现同样的功能

{
  let a = 1
  window.b = function() {
    console.log(a) 
  }
}
b()

总结

如果我们观察这两个片段后可以发现,在ES6中引入let后支持块级作用域后,可以使编写的代码更简洁更易读,小伙伴有什么问题欢迎私信我。。。

相关文章

  • 前端(ES6)

    1.块级作用域的引入 在ES6之前,js只有全局作用域和函数作用域,ES6中let关键字为其引入了块级作用域。 l...

  • es新特性整理

    es新特性整理 let 用来申明变量的 js中以前只有全局作用域和函数作用域,es6中新增了块级作用域。大括号之间...

  • 从JS作用域来看ES6中的let

    简介 关于ES6中let的介绍网上已经有相当多的博客都写到了,比如支持块级作用域、不存在变量提升等等特性,我这里就...

  • let 变量提升

    在ES6之前,JS的scope只有两种,全局作用域和函数作用域,但是在ES6种出现了块级作用域,即使用let/co...

  • 1 - ES6基本语法

    let ES6中创建变量使用let 作用域只限制于当前代码块 使用let声明的变量作用域不会被提升 在相同的作用域...

  • let 和 const

    一、JS中的块级作用域 ES6之前JS不支持块级作用域在ES6之前,JS是没有块级作用域这个概念的,只有全局作用域...

  • ES2015(ES6)学习手册

    作用域 全局作用域 函数作用域 块级作用域(es6) let let 声明的变量只在所处的块级有效 let没有变量...

  • javaScript中var于let区别

    ES6引入let关键字,在JS中var 与let都是用来声明变量,var没有块级作用域,let有。let因为有了块...

  • es6解读1: let, const 和 smybol

    let const 作用域 作用域概念 如何使用let和const 使用let 形成块级作用域 es6下强制开启...

  • let,const以及var三者的区别

    1、首选let是es6新增的声明变量的方式 ,有以下特点: (1)作用域是块级作用域(在ES6之前,js只存在函数...

网友评论

    本文标题:从JS作用域来看ES6中的let

    本文链接:https://www.haomeiwen.com/subject/ujslcftx.html