作用域 & 作用域链(ES6学习笔记)

本文详细介绍了JavaScript中的作用域,包括全局作用域、函数作用域和ES6新增的块级作用域,并强调了ES5中使用IIFE(立即执行匿名函数)的原因及其在ES6中不再必要的事实。同时,文章阐述了作用域链的概念,说明了JavaScript如何通过作用域链查找变量的过程。
摘要由CSDN通过智能技术生成

作用域

1. 全局作用域
  • 浏览器窗口
  • 在所有函数之外定义的变量
2. 函数作用域
  • 在函数中声明的变量(包括函数参数)
3. 块级作用域
  • “{ }”界定的代码区域,一对{ }即为一个块级作用域。
  • ES6允许块级作用域任意嵌套。
  • 内层作用域的变量名,可与外层作用域的变量同名。
ES5中的IIFE(立即执行匿名函数)不再必要了。
  • a) ES5没有块内作用域,只能用函数,但函数只能调用而不能立即执行,故此有了立即执行匿名函数,得以让此函数可以不需调用就能执行。
  • b) 立即执行函数:( function(x){ } )( x );
  • c) 可以理解为IIFE = 块级作用域“{}"
    ES5只有全局作用域和函数作用域

作用域链

1. 每一段JS代码都有一个与之相关的作用域链
2. JS查找变量时,会从当前作用域开始向作用域链上找,直到找到变量的声明为止,若未找到,则报错。
//作用域链
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值