为什么 x 在内部作用域中未定义? [复制]

2023-11-20

在下面的代码中

var x = 1;

(function () {
  console.log(x);
  var x = 2;
}());

为什么console.log(x)时,x未定义?


可变提升。实际的代码是这样执行的。

var x = 1;
(function() {
    var x; // x = undefined
    console.log(x);
    x = 2;
})();

编辑:根据李斯特先生的建议,稍微介绍一下变量提升。来自 MDN(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var):

“变量声明,无论出现在哪里,都会在执行任何代码之前进行处理。用 var 声明的变量的范围是其当前执行上下文,它可以是封闭函数,也可以是全局变量(对于在任何函数外部声明的变量)。”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 x 在内部作用域中未定义? [复制] 的相关文章

  • 如何在嵌套 Backbone 集合上“冒泡”事件?

    我有一个 Backbone 应用程序使用嵌套集合 至少我认为他们是这样称呼的 在我的具体情况下有tabs and subtabs 每个选项卡 模型 包含子选项卡 模型 的集合 对于那些更熟悉代码的人 我将在下面写下我的模型和集合 以及子选项
  • 为什么要在 Observable 函数上调用 .call() ?

    我是 Angular 的相对初学者 我正在努力理解我从 ng bootstrap 项目中阅读的一些源代码 源代码可以在这里找到 我对 ngOnInit 中的代码感到非常困惑 ngOnInit void const inputValues d
  • 使用 jQuery 获取 CSS 中指定的实际值[重复]

    这个问题在这里已经有答案了 解释 我不敢相信以前没有人问过这个问题 但无论如何 请这样做not对此感到困惑question 我正在尝试使用 jQuery 存储元素的高度data方法 以便我可以检索该值并重置特定元素上的原始值 但是 当我尝试
  • Javascript 中的条形图:堆叠条形图 + 分组条形图

    我正在寻找一个 Javascript 解决方案 将分组和堆叠条形图与漂亮的图表混合在一起 例如由Protovis 例如 如果我想比较 Apple iPad iPhone 设备和 Android 设备上的下载量 我可能会这样做 请原谅我糟糕的
  • ThreeJS 停止渲染

    我正在使用 ThreeJS 处理具有 OrbitControls 的基本 3d 场景 一切都很好 除了它导致我的整个网站滞后 因为即使用户没有看它 它也会自行循环 我想要一个函数 当满足某些条件时 在这种情况下 用户没有查看画布 我可以调用
  • 如何在 Django 中组织 JS 文件?

    我目前正在处理一个 Django 项目 我包含不同的 JS 库 并创建 JS 文件来管理其他库 但我不知道每个 html 页面的 JS 文件的正确组织 例如 我有一个 Main js 和 Milk js 位于基本模板中 但我不希望这两个文件
  • 如何使用 jquery 或 JavaScript 在一次浏览中上传多个文件

    我正在开发一个网络应用程序 其中我为多个文件创建了一个页面 一次上传一个浏览文件 而不是一次上传一个文件 用户将能够通过单击浏览来选择多个文件 如果有人对此有解决方案 欢迎 Thanks 对于替代解决方案 您可以使用 HTML5 多重上传
  • JavaScript location.reload() 正在丢失发布数据

    我正在尝试使用java脚本重新加载页面 页面重新加载 但页面中的帖子数据未加载 帖子数据被删除 而页面重新加载任何人都可以帮助我 function currencychange xxx setTimeout delay 2000 funct
  • 使用 JavaScript 设置自定义属性

    我正在使用 DynaTree https code google com p dynatree 但我遇到了一些问题 希望有人可以帮助 我在页面上显示树 如下所示 div ul li class folder Outputs ul li It
  • 异步/等待类构造函数

    目前 我正在尝试使用async await在类构造函数中 这样我就可以定制e mail我正在开发的 Electron 项目的标签 customElements define e mail class extends HTMLElement
  • 标记未出现在传单中的连续世界上

    当我设置选项时continuousWorld true标记不会显示在克隆图块上 仅显示在主世界上 这是设计好的行为吗 可能是其他选项 我没有注意到 来显示这些标记的存在 UPD My aim to repeat markers on eve
  • 上传意图函数 Dialogflow V2

    我正在尝试开发一个API来上传意图DialogflowV2 我已经尝试过下面的代码片段 但是如果尝试与它进行通信 它不起作用Dialogflow它确实有效 检测意图 并且确实得到了回复Dialogflow以便查询 允许 我是管理员 gt 服
  • AngularJS:无法将变量值从 ctrl 范围获取到指令中

    托管控制 function HostingListCtrl scope Hosting Hosting all success function data scope hostings data HTML 模板
  • 通过注入 JavaScript 强制 React 触发事件

    我正在尝试做什么 我目前正在为 Web Whatsapp 编写一个小聊天机器人 我决定使用 chrome 扩展 因为 js 注入很容易 有一个语音消息按钮 当您开始输入内容时 该按钮会切换为发送文本的按钮 React 删除语音消息元素并呈现
  • 在 Android Webview 中,我可以修改网页的 DOM 吗?

    假设我通过 webview 加载第 3 方 URL public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentVie
  • React,如何从父级访问子级的状态?无需更新父级的状态

    大家好 我对 React 还很陌生 并且很难理解整个状态管理以及通过状态和 props 传递数据 我确实理解标准的反应方式是以单向方式传递数据 从父级到子级 我已经对所有其他组件这样做了 但我有一个名为 Book 的组件 它根据用户选择形式
  • 如何从 base64 数据 URI 在服务器端保存 PNG 图像

    我正在使用 Nihilogic 的 Canvas2Image JavaScript 工具将画布绘图转换为 PNG 图像 我现在需要的是使用 PHP 将此工具生成的这些 base64 字符串转换为服务器上的实际 PNG 文件 简而言之 我目前
  • 将子 iframe 中的事件附加到父窗口中的处理程序

    我无法直接访问此 iframe 的源代码 因此如果可能的话 我想这样做 我有一个由 JS 生成的 iframe 里面有一个提交按钮和一个取消按钮 提交按钮工作正常 但我希望取消按钮关闭包含 iframe 的此模式 我还希望提交按钮发送 th
  • 在 Socket.io 中创建房间

    我想请求你的帮助 我在 socket io 的客户端遇到了困难 我想在客户端调用此代码以在 socket io 中创建一个房间 var rooms socket on create function roomname rooms room
  • JS:不使用 jQuery 从字符串中提取文本

    我有这个字符串 var string

随机推荐

  • 如何使用来自 python 的请求使用 opencv 从 url 打开图像

    我正在尝试在 python 上使用 OpenCV 打开大量图像 因为我需要稍后使用它们 其实 我可以用这样的枕头来实现这个目标 url r https i imgur com DrjBucJ png response requests ge
  • 使用 MySQL C API 和 C++ 获取 MySQL 数据库表中的行

    当尝试使用 C 和 MySQL C API 获取 mysql 中的表行时 我感到很困惑 我可以在 PHP 中轻松完成 只是因为 C 是一种强类型语言 所以我们还需要处理脏过程 这就是我在 PHP 中完成的方法 data array i 0
  • 无法升级或从系统中删除 firebase

    正如标题所示 我无法升级或以任何方式从我的系统中删除当前版本的 firebase 我不明白为什么 我使用首次启动项目时提示的 firebase 命令安装了它 符合npm install g firebase tools 在我安装了其他软件包
  • 如何在 Qt for android 中保持屏幕常亮?

    我找到了一些如何在 Java 中做到这一点的解决方案 但没有找到如何在 QML 或 Qt 中做到这一点 我知道首先我应该设置WAKE LOCK的许可AndroidManifest xml 我应该怎么做才能在运行时从 Qt 打开和关闭屏幕锁定
  • Docker 节点 alpine 8 分段错误(核心转储)

    我被这个错误困扰了一整天 当我尝试运行我的 docker 容器时 出现错误Segmentation fault core dumped 因此 为了重现此错误 我将提供我的环境和代码 下面第一个是 Dockerfile 没什么特别的 FROM
  • 没有JS的固定标题列和行的Html表格

    我目前正在尝试正确显示一种议程 该议程代表头行上的时间和头列上的不同房间 我想要有固定的标题 第一行和第一列 和一个可滚动的表格 显示房间在给定时间是否可用 经过一些研究后 我发现这个问题已经使用 jQuery 或自制 JS 脚本得到了回答
  • 角度4:从不同的组件调用方法

    我有 2 个同级组件 我正在一个组件中执行 http 请求 如果发生特定情况 它应该发出另一个在另一个组件中编写的 http 请求 所以我应该能够调用第一个组件中的方法 这是第一个组件 import Component OnInit Inj
  • 在elasticsearch中使用现有字段作为id

    今天刚开始使用elasticSearch 我想知道是否可以设置某种全局参数以始终使用文档中的某个字段作为 ID 我的 JSON 文档将始终拥有自己的唯一 ID Record ID a06b0000004SWbdAAG System Mods
  • Java 和本地数据库

    TL 博士 需要一些 Java 帮助来连接到真正的本地数据库 无法访问服务器技术 或者如果您可以编写代码 那就可以了 它所要做的就是查询数据库 MS Access 尽管可以更改 并输出一个 JSON 字符串 有关更多具体信息 请参阅 EDI
  • React Native android APK 扩展支持吗?

    我尝试搜索 React Native Android APK Expansion 但找不到任何有关它的页面 RN 支持 APK 扩展文件吗 如何在本地开发中测试它 谢谢 None
  • 在spring data elasticsearch中,聚合查询不能放在存储库实现中吗?

    我第一次使用 spring boot elasticsearch 我现在已经弄清楚如何使用 elastics java api 描述我的串行差异管道查询 正如您将在下面看到的 这个查询相当大 并且为每个对象返回多个存储桶以及每个存储桶之间的
  • 丢失密钥对后访问 EC2 实例

    几个月前 我启动了一个 EC2 实例 当时我将 pem 密钥存储在我的 PC 中 电脑崩溃后 我不得不在上面重新安装 Windows 而且我没有 pem 文件的备份 有什么方法可以让我到达 EC2 实例上的提示符 任何通过 ssh 或其他方
  • ASP.Net MVC 控制器构造函数中的会话为 null

    为什么控制器的构造函数中Session为null 可以从 Action 方法访问它 据推测 因为 MVC 路由框架负责更新控制器 所以它此时还没有 重新 实例化会话 有谁知道这是否是设计使然 如果是 为什么 我已经通过使用延迟加载模式设法规
  • jackson xml 列出了识别为重复键的反序列化

    我正在尝试使用将 xml 转换为 jsonjackson 2 5 1 and jackson dataformat xml 2 5 1xml结构是从Web服务器接收的并且未知 因此我不能用java类来表示该对象 并且我试图直接转换为Tree
  • 莫西忽略场

    使用 moshi 序列化为 json 字符串时是否有一种简单的方法来忽略字段 我只能想到是一个自定义适配器 但我感觉有更好的方法 Use transient关于现场声明 private transient String your varia
  • 使用反射在内部类中实例化带有参数的构造函数

    我有一些类似的事情 object parameter new object 1 parameter 0 x object instantiatedType Activator CreateInstance typeToInstantiate
  • OpenCV - 让滑块在视频播放期间更新其位置

    我选择了 学习 OpenCV 并尝试了一些代码示例 练习 在此代码片段中 我想让滑块随着每个视频帧的变化而更新其位置 但由于某种原因它不起作用 图片通过以下代码冻结 include cv h include highgui h int g
  • 在 SELECT INTO 中保留 ORDER BY

    我有一个 T SQL 查询 它从一个表中获取数据并将其复制到一个新表中 但只复制满足特定条件的行 SELECT VibeFGEvents INTO VibeFGEventsAfterStudyStart FROM VibeFGEvents
  • 检查路径是否有效

    我只是想知道 我正在寻找一种方法来验证给定路径是否有效 注意 我不想检查文件是否存在 我只想证明路径的有效性 所以如果文件可能存在于该位置 问题是 我在 Net API 中找不到任何内容 由于 Windows 支持多种格式和位置 我宁愿使用
  • 为什么 x 在内部作用域中未定义? [复制]

    这个问题在这里已经有答案了 在下面的代码中 var x 1 function console log x var x 2 为什么console log x 时 x未定义 可变提升 实际的代码是这样执行的 var x 1 function v