JavaScript作用域和作用域链详解

JavaScript作用域和作用域链详解JavaScript 作用域链详解一 JavaScript 作用域 JavaScript 作用域是什么 作用域范围二 JavaScript 作用域链作用域与执行上下文总结一 JavaScript 作用域 JavaScript 作用域是什么 作用域是在运行时代码中的某些特定部分中变量 函数和对象的可访问性 换句话说 作用域决定了代码区块中变量和其他资源的可见性 作用域范围块语句 大括号 中间的语句 如 if 和 switch 条件语句或 for 和 while 循环语句 不像函数 它们不会创建一个新的作用域

一、JavaScript作用域

JavaScript作用域是什么?

作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。

作用域范围

// let 块级作用域,只能在{}中存在,出了块级作用域就未定义 let a = 1 if(a = 1){ 
    let b = 2 } b // Uncaught ReferenceError: b is not defined 

函数作用域

// var是函数作用域,即使变量定义到块级作用域里,在块级作用域外还是可以访问 let a = 1 if(a = 1){ 
    var b = 2 } b // 2 // 变量放到函数中,在函数外访问不到,报错未定义 let g = function(){ 
    var h = 4 } h // Uncaught ReferenceError: h is not defined 

全局作用域

// window是全局作用域 window // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, parent: Window, …} 

二、JavaScript作用域链

在当前作用域没有找到调用的变量,会往上级找该变量

// 在test函数中,没有定义father变量,因此沿着作用域链向上找到定义在全局作用域的father let father = 'a' let test = function(){ 
    console.log(father) } test() // a 

作用域与执行上下文

总结

good night

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198741.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午2:34
下一篇 2026年3月26日 下午2:35


相关推荐

  • 图文详解 MapReduce 工作流程

    图文详解 MapReduce 工作流程前言本文隶属于专栏 1000 个问题搞定大数据技术体系 该专栏为笔者原创 引用请注明来源 不足和错误之处请在评论区帮忙指出 谢谢 本专栏目录结构和参考文献请见 1000 个问题搞定大数据技术体系正文 MapReduce 编程模型 MapReduce 编程模型开发简单且功能强大 专门为并行处理大规模数据量而设计 接下来 通过一张图来描述 MapReduce 的工作过程 如图所示 关于 MapReduce 编程模型的更多细节请参考我的这篇博客 MapReduce 编程模型到底是怎样的 整体流程

    2026年3月18日
    2
  • Beta版是什么意思

    Beta版是什么意思

    2021年10月18日
    60
  • [转载]虚拟家庭存档文件修改方法

    [转载]虚拟家庭存档文件修改方法本文最早发于幻想论坛 以下是帖子内容 刚刚摸索出来的一些修改方法 发上来共享下 抛砖引玉 修改存档文件时 一定要先关闭游戏 目前可以修改的数据包括 人物的绝大多数属性 物品栏 商店 VariedItem 栏物品 存档文件在目录 我的文档 LDWVirtualFa 下面 游戏里第一个 profile 的存档文件名就是 VirtualFamil ldw 以此类推 用一款 16 进

    2026年3月18日
    2
  • 《剑指offer》– 两个链表的第一个公共结点、链表中环的入口结点、删除链表中的重复结点

    《剑指offer》– 两个链表的第一个公共结点、链表中环的入口结点、删除链表中的重复结点

    2021年10月3日
    41
  • wireshark分析ICMP数据包

    wireshark分析ICMP数据包1 理解 ICMP 数据包的内容 1 类型 8 位字段 ICMP 报文类型 2 代码 8 位字段 记录发送特定类型的 ICMP 报文的原因 3 检验和 16 位字段 4 首部其余部分 32 位字段 5 数据部分 包括差错报文的数据部分携带的信息可以找出引起差错的原始报文 查询报文的数据部分携带了基于查询数据的额外信息 2 tracetwww baidu com 分析出错的数据包的源地址和目标地

    2026年3月19日
    2
  • mybatis log plugin激活码(JetBrains全家桶)

    (mybatis log plugin激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlbnNlSWQiOi…

    2022年3月21日
    83

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号