JavaScript基础知识介绍——作用域(静态作用域、全局作用域、IIFE、函数作用域和提升、严格模式)
作用域决定了变量、常量和参数被定义的时间和位置当某个变量的作用域是一个给定的函数时必须要记住形参只有在函数被调用的时候才存在编程实参。一个函数可能会被调用多次每次函数调用开始时参数才是真实存在的在函数返回后参数就失去作用域了变量和常量也只有在创建后才存在。也就是说在使用let或const声明之前他们是没有作用域的var是特例作用域或者可见性指的是当前可见并且可以被正在执行的代码块称作执行上下文访问的标识符在JavaScript中作用域是静态的这意味着只能通过阅读源代码就能确定变量的作用域静态作用域静态作用域在某个作用域内定义了某个函数而不是调用函数该作用域包含所有变量也在该函数的作用域内在JavaScript中静态作用域适用于全局作用域、块作用域、以及函数作用域全局作用域在全局作用域中生命的一切在当前程序的作用域的所有作用域内都是可用的在全局作用域中声明的变量叫全局变量谨慎地使用——努力避免依赖全局作用域块作用域let和const关键字声明的变量名处在块作用域中块作用域指的是那些仅仅在代码块内有效的变量console.log(before block); { console.log(inside block); const x 3; //打印3 console.log(x); } console.log(outside block; x${x}); //ReferenceError: x未定义解析这里有一个独立的块块通常是控制流语句的一部分例如if或for但定义独立的块也是合法的。在块内定义了变量x一旦出了此块x就不在作用域内就会被认为是未定义的变量屏蔽变量屏蔽有时候也叫做变量阴影即一个相同名字的变量会将外部作用域的变量屏蔽起来作用域的层次结构可以在原有的作用域中进入一个新的作用域。此时会建立一个作用域链来决定哪些变量在作用域中当前作用域链中的所有变量都在作用域内并且只要它们没有被屏蔽都是可以被访问的即时调用函数表达式函数表达式允许创建即时调用函数表达式IIFEIIFE声明了一个函数并立即执行该函数(function() { //使用函数表达式创建了一个匿名函数然后立即调用该函数 //这里为IIFE代码 })();IIFE好处任何内部信息都有自己的作用域并且因为它本身就是函数他还可以向作用域外传递信息比较常见的返回值有数组、对象以及函数可以打印出自己被调用的次数而且次数不会被篡改函数作用域和提升使用let声明变量变量只在声明之后才存在。而使用var声明变量在当前作用域中任意地方都可用甚至可以在声明前使用PS未声明的变量和值为undefined的变量不是同一个概念。使用未声明的变量会报错但可以安全使用语句存在且值为undefined的变量//使用let时如果引用的变量未声明将会得到一个错误 x; //ReferenceErrorx未定义 let x 3; //永远不会执行——因为错误终止了程序 //而用var声明的变量可以在声明前被引用 x; //undefined var x 3; x; //3原因var声明的变量采用了提升机制JavaScript会扫描整个作用域函数或者全局作用域任何使用var声明的变量都会被提升至作用域的顶部使用var声明的变量JavaScript不会关心它是否有重复声明函数提升类似于var声明的变量函数声明也会被提升至它们作用域的顶部这允许在函数声明之前调用严格模式严格模式阻止隐式全局变量在开始编写代码之前单独插入一行字符串use strict单引号或双引号都可以就可以启动严格模式为了避免麻烦可将所有代码封装宰割立即执行的函数中(function() { use strict; //所有代码从这里开始...代码会按照严格模式执行 })();

相关新闻

数字序列11111的传播特性与文化内涵解析

数字序列11111的传播特性与文化内涵解析

1. 项目概述"11111"这个看似简单的数字序列,实际上蕴含着丰富的文化内涵和网络传播特性。作为一名长期观察网络文化现象的从业者,我发现这串数字在不同语境下展现出截然不同的意义和传播路径。从技术传播角度看,"11111"作…

2026/7/28 15:03:25 阅读更多 →
docker查看挂载目录Volume

docker查看挂载目录Volume

转: 使用docker inspect命令查看container的volume信息,按照书本上面敲,发现一直报错: 使用命令如下: sudo docker inspect --format "{{.Volumes}}" 676b04bec7c5错误信息为 Template parsing error: template: :1:2: …

2026/7/28 15:03:25 阅读更多 →
如何3小时完成AI小说推文创作:TaleStreamAI终极自动化方案指南

如何3小时完成AI小说推文创作:TaleStreamAI终极自动化方案指南

如何3小时完成AI小说推文创作:TaleStreamAI终极自动化方案指南 【免费下载链接】TaleStreamAI AI小说推文全自动工作流,自动从ID到视频 项目地址: https://gitcode.com/gh_mirrors/ta/TaleStreamAI TaleStreamAI是一款革命性的AI小说推文全自动工…

2026/7/28 15:03:24 阅读更多 →

最新新闻

男的更容易买房子还是女的更容易买房子?Logistic模型预测

男的更容易买房子还是女的更容易买房子?Logistic模型预测

现在房价在小幅下降,但对于刚需的朋友来说,到必要时刻还是得买。对多数普通人来说,买房子是件大事,买一套房需要多看几次,但看几次最合适呢?我们可以从历史顾客的到访次数、年龄、性别和成交情况来探究到访…

2026/7/28 15:13:28 阅读更多 →
网络通信原理与TCP/IP协议深度解析

网络通信原理与TCP/IP协议深度解析

1. 网络通信的本质解析 当我们在浏览器输入一个网址时,背后究竟发生了什么?这个问题困扰着许多刚接触网络技术的开发者。实际上,网络通信的本质就是数据在不同设备间的有序流动,就像城市中的快递配送系统。 现代网络架构采用分层…

2026/7/28 15:13:28 阅读更多 →
AI如何用NLP与知识图谱重塑学术开题报告

AI如何用NLP与知识图谱重塑学术开题报告

1. 项目概述:AI如何重塑学术开题体验 开题报告是学术研究的"第一道坎",却让无数研究生辗转难眠。传统模式下,学生需要手动梳理海量文献、反复调整研究框架、不断修改技术路线,这个过程平均消耗47个工作日(根…

2026/7/28 15:13:28 阅读更多 →
AI记忆框架cognee实战:构建具备长期记忆的智能助手

AI记忆框架cognee实战:构建具备长期记忆的智能助手

在构建AI应用时,你是否遇到过这样的困境:同一个用户反复询问相似的问题,但AI每次都要从头开始理解上下文,对话显得生硬且低效?或者,当你尝试开发一个能长期陪伴用户的智能助手时,却发现它无法记住用户的偏好和历史,每次交互都像初次见面?这正是当前大多数AI Agent面临…

2026/7/28 15:13:28 阅读更多 →
爬虫转大模型,我的旧方法先崩了:权限日志才是真门槛

爬虫转大模型,我的旧方法先崩了:权限日志才是真门槛

《我用爬虫经验做了次 AI 项目,最先失效的是旧方法》看起来是个大话题,但真落到项目里,常常就是几个具体选择。下面我尽量按实际开发时会遇到的问题来讲。摘要摘要:从信息采集到 AI 竞争力,我靠一次联调失败悟了——De…

2026/7/28 15:13:28 阅读更多 →
C++ RESTful API 与 Nginx 集成:构建高性能后端服务的完整实践

C++ RESTful API 与 Nginx 集成:构建高性能后端服务的完整实践

在 C++ 项目中,构建一个高性能、可维护的后端服务是许多开发者追求的目标。这类项目通常不仅需要处理复杂的业务逻辑,还需要对外提供稳定、高效的 API 接口,并能够安全、快速地分发前端静态资源。结合常见的工程实践,一个典型的 C++ 后端项目架构可能涉及 RESTful API 设计…

2026/7/28 15:12:28 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻