我应该在 for in 构造中使用 var 吗?

2024-02-06

我在一段 JavaScript 逻辑中使用了 for in 循环。 我应该使用 var 关键字吗?

当我按照 W3School 的示例运行 for-in 循环时,如果没有 var,那么作为副作用,它被定义为全局范围(窗口)上的属性:

(function () {

  var object = {
      a: 1,
      b: 2
  }
  for (varName in object) {
      alert(varName + " is" + object[varName])
  }

})();

alert(window.varName) //Returns "b" !
//This returns undefined when the for-in is rewritten as for (var varName in object).

编辑:这是上面代码的小提琴供您欣赏:http://jsfiddle.net/94uEh/ http://jsfiddle.net/94uEh/

哪一种是正确的、首选的形式? - 请注意,我希望支持 IE 8 (EcmaScript


你应该总是使用var,如果您希望该值是本地的。

使用关键字object对于变量,不推荐,您可能会在浏览器中遇到未定义的行为。

此外,您通常应该避免应用任何被认为是全局范围内的本地内容。

这不好:

for (varName in object) {
    alert(varName + " is" + object[varName])
}

这是对的:

for (var varName in object) {
    alert(varName + " is" + object[varName])
}

如果您需要在全局范围内访问该值,那么您可能做错了。同样,将其放在全局范围内也是无用的,因为它只是存在于 varName 中的最后一个值。

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

我应该在 for in 构造中使用 var 吗? 的相关文章

  • 从 thymeleaf 获取数据到模态引导程序、jquery

    我正在尝试获取模态视图的 id 这是为了更新 onclick 元素 但我找不到方法 知道如何为 boostrap 5 完成此操作 或我可以用其他方法吗 谢谢 tr a inactivate a div class modal fade mo
  • 使用 vscode 调试器调试 next.js

    我已经使用安装了一个项目创建下一个应用程序 https github com segmentio create next app 我需要使用我的编辑器 vscode 调试服务器端渲染 所以我访问过vscode recipes 如何调试 ne
  • 关闭选项卡时要求确认[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我在某些浏览器上关闭页面时 我希望出现一个消息框 并询问我是否真的要关闭页面 有两个按钮 如果我单击No那么这个标签就不会被关闭 我怎样
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 为什么在 Internet Explorer 中访问 localStorage 对象会引发错误?

    我正在解决一个客户端问题 Modernizr 意外地没有检测到对localStorageInternet Explorer 9 中的对象 我的页面正确使用 HTML 5 文档类型 并且开发人员工具报告该页面具有 IE9 的浏览器模式和 IE
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • AngularJS TypeError:在 Object.stringify(本机)处将循环结构转换为 JSON

    我正在尝试让这段代码正常工作 显然 代码中有循环引用 但我找不到它 有人可以帮我吗 var appjson APP DATA RETRIEVED fail var appPostRequest get appurl data appconf
  • 使用 Regex C# 删除 HTML 标签的样式

    我想使用 C 从 HTML 标签中删除样式 它应该只返回 HTML 简单标签 对于即 如果String p style margin 15px 0px padding 0px border 0px Hello p 然后它应该返回String
  • 不包含带有 0 个参数的构造函数

    我收到一条错误消息 指出以下代码中的 Products 不包含采用 0 个参数的构造函数 public class Products string id string name double price int soldCount int
  • 使用复选框从数据库表中删除行

    我想在表中显示数据库中的记录 每行都有复选框 该复选框将确定用户是否要删除该特定行 如果选中 我能够显示数据库中的数据 但是当我按下删除按钮时什么也没有发生 我不确定 但我认为错误在于我删除了部分代码 但我可能是错的 我不知道 无论如何 这
  • 使用自定义 Gson 反序列化器反序列化 JSON 响应时出错

    在我使用 Retrofit 的 Android 应用程序中 我尝试反序列化具有包装项目列表的外部对象的 JSON 我使用 GsonConverterFactory 和 Retrofit 实例来反序列化 JSON 我创建了一个自定义反序列化器
  • 是否可以获取Mysql中按列名分组在一起的行列表?

    在我的数据库中 我有一个名为 结果 的表 其中有四列 名称 设备 通过 失败 假设表中有 4 行 如下所示 name device passed failed test1 device 1 2 1 test1 device 2 3 0 te
  • 如何在 iPhone 的 pdf 页面中使用 CGPDFScanner 查找字坐标?

    我正在使用 CGPDFScanner 解析 pdf 页面 但我无法找到搜索结果的坐标 在 void Tm1 CGPDFScannerRef Scanner void info 中 我只获取某些单词的坐标 而不是 pdf 中每个单词的坐标 如
  • tensorflow有没有类似pytorch的“masked_fill_”的功能

    我想通过掩码矩阵将 INF 值设置为矩阵 就像 pytorch 代码一样 scores data masked fill y mask data float inf 我尝试使用tf map fn实现这一点 但性能太慢 那么tensorflo
  • undertow-handlers.conf 中的规则将 HTTP 重定向到 HTTPS

    我在负载均衡器后面有一个 Wildfly 它们之间的连接始终是 HTTP 客户端和负载均衡器之间的连接可以是 HTTP 或 HTTPS 负载均衡器设置一个标头 X Forwarded Proto 来让 Wildfly 知道客户端正在使用哪个
  • 为我的对象实现 Save 方法

    我正在尝试改进应用程序的设计 因此不是从表示层调用数据访问层 我将尝试从 BusinessObjects 层中的对象实现保存方法 但我不确定如何通过图层传递对象或其属性 例如 在我的旧设计中 我只是在表示层中创建对象的实例并分配它的属性 然
  • C中数组相关函数参数的区别

    我定义了一个数组 float array 3 4 5 那么 当 array array 0 array 0 0 array 0 0 0 用作函数参数 需要了解的重要一点是 在 C 中 数组并不是完整地作为参数传递的 相反 传递的是指向数组第
  • ui 路由器不会将内容放入指定的 ui-view 中

    当我进入路线时 projects 100 dates 2014 01 01 在 url 中并按回车键 我得到 项目 状态 我预计会触发 projects selected dates 状态 为什么路由不起作用 实际上它在我的机器上本地运行
  • iPhone 横向 - iOS7 R4 图像资源仅无启动图像

    我相当确定这是一个错误 但如果有人找到解决方法 请告诉我 我已经在 Xcode 5 中设置了启动图像的资产目录 如果我设置 iOS 7 R4 图像 则仅当我的应用程序支持纵向方向时才使用它 我的应用程序仅横向显示 我看不到启动图像 iOS
  • 如何在 php 中创建类似 twitter 的 search.json

    我在我的网站上创建了一个 search php 文件 它生成一个 JSON 字符串 帮助我为我的应用程序使用实时 ajax 但现在 我想将它作为 API 向其他人开放 但我发现 get getJSON ajax 不允许使用来自其他服务器 域
  • 使用 Django dumpdata 转储整体数据的子集?

    我正在尝试使用 dumpdata 为数据库生成 JSON 该数据库对于 django 来说足够大 需要很长一段时间才能输出 有没有办法只转储字段的子集 比如说 100 用于测试 我正在使用 MySQL 和 Django 1 0 第三方 dj
  • Plotly:如何在桑基图中设置节点位置?

    样本数据如下 unique list home0 page a0 page b0 page a1 page b1 page c1 page b2 page a2 page c2 page c3 sources 0 0 1 2 2 3 3 4
  • 如何使用冒泡排序对链表进行排序?

    我正在尝试使用冒泡排序来对链接列表进行排序 我使用 curr 和 Trail 来遍历列表 curr 应该总是比 Trail 领先一步 到目前为止 这是我的代码 void linked list sort int i j 0 int coun
  • 将 Docker 镜像内的用户切换为非 root 用户

    我正在尝试将用户切换到 tomcat7 用户以设置 SSH 证书 当我做su tomcat7 什么都没发生 whoami完成后仍然会rootsu tomcat7 Doing a more etc passwd 我得到以下结果 清楚地表明 t
  • 如何通过给出正在运行的进程名称来获取窗口句柄?

    如何通过在 c 中给出进程名称或窗口标题来获取窗口句柄 假设进程已经在运行 您可以使用Process class Process processes Process GetProcessesByName someName foreach P
  • 我应该在 for in 构造中使用 var 吗?

    我在一段 JavaScript 逻辑中使用了 for in 循环 我应该使用 var 关键字吗 当我按照 W3School 的示例运行 for in 循环时 如果没有 var 那么作为副作用 它被定义为全局范围 窗口 上的属性 functi