当前位置: 首页 > news >正文

JS作用域与作用域链

让我为大家介绍一下作用域与作用域链吧!

作用域

作用域规定了变量能够访问的“范围”,离开了这个“范围”变量便不能被访问。
作用域分为:局部作用域,全局作用域

一、局部作用域

局部作用域分为函数作用域与块作用域
1.函数作用域:
在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。

    function fun() {// 函数内部是函数作用域 属于局部变量let num = 10}console.log(num); //报错 函数外部不能使用局部作用域变量

总结:
1.函数内部声明的变量,在函数外部无法被访问
2.函数的参数也是函数内部的局部变量
3.不同函数内部声明的变量无法互相访问
4.函数执行完毕后,函数内部的变量实际被清空了

2.块作用域:
在javaScript中使用{ }包裹的代码称为代码块,代码内部声明的变量外部将【有可能】无法被访问。
外部无法被访问的情况:

    for (let i = 0; i < 3; i++) {// 块作用域 i只能在该代码块中被访问console.log(i);}console.log(i);// 报错 超出了i的作用域

外部可能被访问的情况:

    for (var i = 0; i < 3; i++) {// var不会产生块作用域console.log(i);}console.log(i);// 正常输出

1.let声明的变量会产生块作用域,var不会产生块作用域
2.const声明的常量也会产生块作用域
3.不同代码块之间的变量无法相互访问
4.推荐使用 let 或 const

二、全局作用域

script标签.js文件的【最外层】就是所谓的全局作用域,在此声明的变量在函数内部也可以被访问。
全局作用域中声明的变量,任何其它作用域都可以被访问

    // 全局作用域下声明了num变量let num = 1function fun() {// 函数内部可以使用全局作用域的变量console.log(num);//1}fun()

注意:
1.为window对象动态添加的属性默认也是全局的,不推荐
2.函数中未使用任何关键字声明的变量为全局变量,不推荐
3.尽可能少声明全局变量,防止全局变量被污染

作用域链

作用域链本质是底层的变量查找机制
在函数被执行时,会优先查找当前函数作用域中查找变量
如果当前作用域查找不到则会依次逐级查找父级作用域直到全局作用域

    // 全局作用域let num1 = 1let num2 = 2// 局部作用域function fun1() {let num1 = 1// 局部作用域function fun2() {num1 = 2console.log(num1) //2}fun2() //调用}fun1() //调用

fun2函数中查找,没有查找到到fun1()函数中查找,如果还是没查找到,到全局作用域中查找
总结:
1.嵌套关系的作用域串联起来形成了作用域链
2.相同作用域链中按着从小到大的规则查找变量
3.子作用域能够访问父作用域,父作用域无法访问子级作用域

感谢大家的阅读!借鉴了德华(pink老师)的内容。

  • List item

相关文章:

JS作用域与作用域链

让我为大家介绍一下作用域与作用域链吧&#xff01; 作用域 作用域规定了变量能够访问的“范围”&#xff0c;离开了这个“范围”变量便不能被访问。 作用域分为&#xff1a;局部作用域&#xff0c;全局作用域 一、局部作用域 局部作用域分为函数作用域与块作用域 1.函数作…...

elmentui 查看大图组件 点击图片关闭弹窗方法

elmentui 查看大图组件 点击图片关闭弹窗方法 html <el-imageref"Imgs":src"item.url ? item.url : ":preview-src-list"item.url ? [item.url] : []"click.stop"handlePreviewClose"class"alarm_img"/>js //图片…...

蓝桥杯官网练习题(最长子序列)

题目描述 我们称一个字符串S 包含字符串 T 是指 T 是 S 的一个子序列&#xff0c;即可以从字符串 S 中抽出若干个字符&#xff0c;它们按原来的顺序组合成一个新的字符串与 T 完全一样。 给定两个字符串 S 和 T&#xff0c;请问 T 中从第一个字符开始最长连续多少个字…...

Make sure that using this pseudorandom number generator is safe here.

问题类型&#xff1a;安全热点 安全问题级别&#xff1a;MEDIUM 一、问题代码 工具类Package&#xff1a; Java commons-lang3 库 RandomUtils 随机数工具类 import org.apache.commons.lang3.RandomUtils; 用法&#xff1a; RandomUtils.nextInt(0, 999999999) //生成 0…...

【C/C++】常见模拟题题解

题解 模拟双目运算符一元二次方程求解水仙花数统计学生成绩学生成绩管理模拟选举大小写字符转换最大公约数、最小公倍数字符串反序 模拟双目运算符 编写一个根据用户键入的两个操作数和一个双目运算符&#xff0c;由计算机输出结果的程序。 #include<stdio.h>int opera…...

TikTok 购物和直播的 5 个简单技巧

TikTok 的一切都很大&#xff1a;应用程序下载量、受众规模和病毒式营销活动。因此&#xff0c;该公司多方面进军社交商务也就不足为奇了。是的&#xff0c;这将是巨大的。自去年年底以来&#xff0c;TikTok Shopping 和TikTok 直播购物活动已在一些市场上线&#xff0c;并将于…...

神经网络中BN层简介及位置分析

1. 简介 Batch Normalization是深度学习中常用的技巧&#xff0c;Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (Ioffe and Szegedy, 2015) 第一次介绍了这个方法。 这个方法的命名&#xff0c;明明是Standardization, 非…...

BGP基础配置

EBGP是AS之间 IBGP是AS内 R1-R2是EBGP,R4-R5是EBGP R2-R3-R4是IBGP 第一步基础配置&#xff1a;IP地址 [r1-GigabitEthernet0/0/0]ip ad 12.0.0.1 24 [r1-LoopBack0]ip ad 1.1.1.1 32 [r2-GigabitEthernet0/0/0]ip ad 12.0.0.2 24 [r2-LoopBack0]ip ad 2.2.2.2 32 [r2-Loop…...

【开题报告】基于深度学习的驾驶员危险行为检测系统

研究的目的、意义及国内外发展概况 研究的目的、意义&#xff1a;我国每年的交通事故绝对数量是一个十分巨大的数字&#xff0c;造成了巨大的死亡人数和经济损失。而造成交通事故的一个很重要原因就是驾驶员的各种危险驾驶操作行为。如果道路驾驶员的驾驶行为能够得到有效识别…...

Linux云服务器打包部署前端Vue项目

1. 打包 在项目包的终端使用命令打包成dist文件。 npm run build2. Linux云服务器上创建文件夹 mkdir /home/www/dist注&#xff1a;dist文件夹不用创建&#xff0c;将打包好的dist.zip放进去&#xff0c;然后解压就行。 3. 安装nginx yum install -y nginx4. 修改配置文件…...

Egg.js中Cookie和Session

Cookie HTTP请求是无状态的&#xff0c;但是在开发时&#xff0c;有些情况是需要知道请求的人是谁的。为了解决这个问题&#xff0c;HTTP协议设计了一个特殊的请求头&#xff1a;Cookie。服务端可以通过响应头&#xff08;set-cookie&#xff09;将少量数据响应给客户端&#…...

与 PCIe 相比,CXL为何低延迟高带宽?

文章目录 前言1. LatencyPCIE 生产者消费则模型结论Flit 包PCIE/CXL.ioCXL.cace & .mem总结 2. BandWidth常见开销CXL.IO Link efficiencyPCIe Link efficiencyCXL.IO bandwidthCXL.mem/.cache bandwidth 参考 前言 CXL 规范里没有具体描述与PCIe 相比低延时高带宽的原因&…...

Vue 入门指南:从零开始学习 Vue 的基础知识

&#x1f95d;VUE官方文档 注意&#xff1a; &#x1f4d2;Vue 2 将于 2023 年 12 月 31 日停止维护。详见 Vue 2 延长 LTS。&#x1f4d2;Vue 2 中文文档已迁移至 v2.cn.vuejs.org。&#x1f4d2;想从 Vue 2 升级&#xff1f;请参考迁移指南。 文章目录 &#x1f341;前言&am…...

11.docker的网络-docker0的理解及bridge网桥模式的介绍与实例

1.docker0的基本理解 安装完docker服务后&#xff0c;我们首先查看一下宿主机的网络配置 ifconfig我们可以看到&#xff0c;docker服务会默认在宿主机上创建一个虚拟网桥docker0&#xff0c;该网桥网络的名字称为docker0。它在内核层连通了其他物理或者虚拟网卡&#xff0c;这…...

新材料制造ERP用哪个好?企业应当如何挑选适用的

有些新材料存在特殊性&#xff0c;并且在制造过程中对车间、设备、工艺、人员等方面提出更高的要求。还有些新材料加工流程复杂&#xff0c;涉及多种材料的请购、出入库、使用和管理等环节&#xff0c;解决各个业务环节无缝衔接问题是很多制造企业面临的管理难题。 新材料制造…...

vr小鼠虚拟解剖实验教学平台减少了受感染风险

家畜解剖实验教学是培养畜牧兽医专业学生实际操作能力的专业教学活动中的核心手段。采取新型教学方式与手段&#xff0c;合理设置实验教学内容&#xff0c;有助于激发学生的操作积极性&#xff0c;促进实践教学的改革。 家畜解剖VR仿真教学是一种借助VR虚拟现实制作和web3d开发…...

【算法萌新闯力扣】:环形链表及环形链表II

力扣题目&#xff1a;环形链表及环形链表II 开篇 今天是备战蓝桥杯的第26天和算法村开营第4天。挑选了链表的黄金关卡与大家分享。 题目一&#xff1a;环形链表 题目链接: 141.环形链表 题目描述 方法一、哈希表 判断是否有环&#xff0c;可以利用哈希表&#xff0c;遍历…...

10.docker的网络network-概述

1.docker的网络模式 docker共有四种网路模式&#xff0c;分别是bridge、host、none和container. 1.1 bridge bridge,也称为虚拟网桥。在bridge模式下&#xff0c;为每个容器分配、配置IP等&#xff0c;并将容器连接到一个docker0。使用–network bridge命令指定&#xff0c;…...

CodeTON Round #7 (Div. 1 + Div. 2)

A.jagged Swaps 题意&#xff1a; 给出一个包含 n n n个数字的序列&#xff0c;每次可以选择一个同时大于左右两边相邻的数字&#xff0c;将这个数字与它右边的数字交换&#xff0c;问能否在经过若干次操作后使序列变为升序。 分析&#xff1a; 由于交换只能向后进行&#…...

剑指 Offer(第2版)面试题 10:斐波那契数列

剑指 Offer&#xff08;第2版&#xff09;面试题 10&#xff1a;斐波那契数列 剑指 Offer&#xff08;第2版&#xff09;面试题 10&#xff1a;斐波那契数列解法1&#xff1a;递归解法2&#xff1a;动态规划解法3&#xff1a;动态规划 - 空间优化 剑指 Offer&#xff08;第2版&…...

飞机遥感影像的数据集记录

飞机遥感影像的数据集记录&#xff1a; - 飞机检测数据集&#xff1a; DIOR、NWPU VHR-10、DOTA、LEVIR和RSOD等,但是上述数据集没有提供飞机目标具体型号信息,仅适用于飞机目标检测&#xff0c;不适用于飞机目标细粒度识别算法研究。 - 1. 飞机切片目标分类任务&#xff1a; M…...

从安防到自动驾驶:红外-可见光融合技术落地避坑指南

从安防到自动驾驶&#xff1a;红外-可见光融合技术落地避坑指南 在智能安防和自动驾驶领域&#xff0c;夜间或恶劣天气条件下的视觉感知一直是技术难点。红外与可见光图像融合&#xff08;IVIF&#xff09;技术通过结合两种模态的优势——可见光的高分辨率纹理和红外成像的环境…...

硬件散热的智能管家:FanControl全维度调控指南

硬件散热的智能管家&#xff1a;FanControl全维度调控指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanCon…...

避坑指南:云深处X20与Kinova机械臂URDF模型组合时,关节命名与坐标对齐的那些坑

云深处X20与Kinova机械臂URDF模型组合避坑实战指南 当机械狗遇上机械臂&#xff0c;本该是强强联合的完美组合&#xff0c;却在URDF模型整合过程中频频翻车。关节错位、模型飞散、仿真崩溃——这些看似简单的坐标系对齐问题&#xff0c;往往让开发者耗费数日调试。本文将直击云…...

m4s-converter:让B站缓存视频真正为你所用的本地化工具

m4s-converter&#xff1a;让B站缓存视频真正为你所用的本地化工具 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 一、问题象限&#xff1a;B站…...

Pretext:值得关注的文本排版引擎陨

一、语言特性&#xff1a;Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一&#xff0c;就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全面支…...

基于全同态加密的逻辑回归心脏病预测示例详解

&#xff08;1&#xff09;人口统计学&#xff08;Demographic&#xff09; 性别&#xff08;Sex&#xff09;&#xff1a;男性或女性&#xff08;分类变量&#xff09; 年龄&#xff08;Age&#xff09;&#xff1a;患者年龄&#xff08;连续变量——虽然记录为整数&#xff0…...

在 ADT 中高效查看 CDS 依赖细节:吃透 Element Information Popup 与 ABAP Element Info View

在日常的 ABAP CDS 开发里,很多人把精力都放在 DDL 语法、注解、关联、扩展和激活错误上,却忽略了一个非常实用的观察窗口:Element Information Popup 与 ABAP Element Info View。这两个功能看上去像是一个简单的 F2 帮助窗口,真正用熟之后,你会发现它们远不只是看一眼对…...

别再只调参了!用波士顿房价数据实战,教你读懂岭回归和Lasso的系数变化与特征选择

波士顿房价预测实战&#xff1a;从岭回归到Lasso的系数解密与特征工程艺术 当我们面对包含13个特征的波士顿房价数据集时&#xff0c;传统的线性回归往往会给出看似完美的系数解。但你是否注意到&#xff0c;这些系数在实际应用中可能极度不稳定&#xff1f;这正是正则化技术大…...

4大核心价值解锁旧Mac潜能:OpenCore Legacy Patcher全方位升级指南

4大核心价值解锁旧Mac潜能&#xff1a;OpenCore Legacy Patcher全方位升级指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款…...