专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

「最简教程」每天一篇,轻松搞定ES6——块级作用域

ins518 2024-09-24 18:15:57 技术文章 10 ℃ 0 评论

目前正在更新的 ReactES6 系列文章,上一篇:简介和let命令

————致力于最简单的前端教程,每天一篇文章,轻松进阶前端

ES5的作用域

ES5中作用域分为 全局作用域函数作用域,在不同的作用域下定义的变量分别成为全局变量和局部变量,全局变量的全部放在全局对象window下(node是global)

var lan='en';
window.lan;
//"en"

ES6 块级作用域

es6中认为 {} 内部是一个块级作用域,定义在块级作用域的变量只在内部有效(var命令保留es5的特性,不受块作用域影响)。

if(true){
 let lan='en';
}
lan;
//Uncaught ReferenceError: lan is not defined

注:

1. {}可以单独写,可嵌套

{
 {let lan='en'}
 len;
 //Uncaught ReferenceError: lan is not defined
}

2. 封装

es5使用立即执行函数(IIFE)来做封装,避免全局污染,现在使用{}即可解决这个问题

//es5写法
(function(){
 var lan='en'
})()
//es6写法
{
 let lan='en'
}

3. 函数在块级作用域内定义,只在内部有效

实际测试,谷歌和node为兼容,函数还是会被提升,并没有被限制在块内

块内的函数被提升

本篇文章到此结束,下篇文章讲const命令,关注后收到更新推送


【html】【css】【html】【css】【html】【javascript】【html】【javascript】【javacsript】【css】【javascript】【css】【javascript】【css】【javascript】 【html】

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表