JavaScript 开发人员不使用 Array.push() 是否有原因?

2024-07-04

我经常看到开发人员在 JavaScript 中使用如下所示的表达式:

arr = []
arr[arr.length] = "Something"
arr[arr.length] = "Another thing"

不会push更合适吗?

arr = []
arr.push("Something")
arr.push("Another thing")

事实上,我在今年年初也问过自己同样的问题。更新了新的测试用例 http://jsperf.com/array-push-vs-unshift-vs-direct-assignment/2 http://jsperf.com/array-push-vs-unshift-vs-direct-assignment/2

看起来push在 chrome 中要快得多,在 FF 中大约相等。另外,直接在 IE9 中速度更快,但我很想看看它在 IE10 中的表现如何。

我想说,大多数开发人员会假设设置数组的长度,然后使用直接赋值会更快,就像大多数编程语言的情况一样。但 JavaScript 不同。Javascript 数组并不是真正的数组 http://blog.niftysnippets.org/2011/01/myth-of-arrays.html,它们只是键/值映射,就像所有其他 JavaScript 对象一样。因此,预分配实际上是被置若罔闻。

我个人更喜欢push (:

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

JavaScript 开发人员不使用 Array.push() 是否有原因? 的相关文章

  • 如何通过 emscripten 在 C++ 和 javascript 之间传递字符串

    我正在学习 emscripten 在 C 和 JS 之间传递字符串时 我什至无法进行最基本的字符串操作 例如 我想写一个字符串长度函数 在 C 中 extern C int stringLen std string p return p l
  • 如何在没有 iframe 的情况下使用 Google 表单?

    几年前 我在互联网上发现如何在联系页面中使用 Google 表单 仅使用属性提交按钮操作中的查询而不使用 iframe 现在 我再也找不到了 没有 iframe 是否仍然可以使用 Google 表单 我刚刚找到了 function post
  • 为什么异步 XMLHttpRequest 优于同步请求? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 C# 中使用匿名类型创建对象文字时出现问题

    我正在尝试构建 JavaScript 对象文字的 C 近似值 以传递给 asp net MVC 中的视图模型 var obj new dynamic new name Id index Id width 40 align left new
  • SharePoint REST 查询 SP.UserProfiles.PeopleManager 特殊字符

    这个问题是我作为起点发现的这个问题的延伸 无需特殊字符即可工作 SharePoint REST 查询 SP UserProfiles PeopleManager https stackoverflow com questions 23340
  • 使用 Google Apps 脚本,如何替换 Google 表格模板中的文本以制作新表格?

    我有一个谷歌表格 https docs google com spreadsheets d 17qtLpnFTiMoE6blELSTQhtxkWa1hjjzI PcaY 3cS1Q edit resourcekey null gid 465
  • CdnFallbackExpression 列表

    CDN 上有很多可用的开源 JS 库 使用 ASP NET MVC 的捆绑功能 可以定义 CDN 失败时的后备方案 CdnFallbackExpression 是一个有用的功能 但是 我似乎找不到用于 jquery 之外的库的任何表达式列表
  • 如何更改Jquery表单验证插件中“此字段为必填”的内容?

    如何将 Jquery 表单验证插件中的 此字段为必填字段 的一般消息更改为 fi 必须 可以使用以下代码更改消息的颜色 但如何更改内容呢 我想更改所有 此字段为必填 消息 我想将所有 必需 消息更改为 fi 必须 selector vali
  • 用随机图像填充表格

    首先 我的编码经验包括修改简单的脚本以在我的页面上工作 其次 我搜索并发现了几个类似的问题 但无法完全解决它们 我需要一些帮助来使用大约 40 张图像数组中的随机图像填充 3x3 表 我目前有一个使用 backgroundImage 属性的
  • 为 Flutter Web 应用程序添加 id 或 name 属性或其他标识方式?

    在编写 Flutter Web 应用程序时 我尝试利用基于 Selenium 的 Web UI Testing 框架 遗憾的是 我无法通过 id 或 name 属性识别代表某个 flutter 小部件的 HTML 元素 HTML 文档中不存
  • Cckeditor 字符限制与 charcount 插件

    我怎么能够prevent用户输入新字符在最大字符之后已达到限制 Ckeditor charcount 插件只是向我显示剩余的字符 我希望它停在 0 处 但它会减去整数 这是我的 html 代码
  • Node-Webkit在不同窗口启动功能

    我的 node webkit 应用程序由一个控制窗口和一个演示窗口组成 控制窗口收集数据并最终通过window open功能 演示文稿窗口现在可以访问global多变的 现在我想通过创建 SVG 元素等来呈现该信息的图形表示 我已经有一个
  • 使用 SVG 的部分边框/描边

    我正在使用 svg d3 创建由 矩形 元素组成的图表 为每个矩形添加部分边框 描边 仅在矩形顶部 的最佳方法是什么 Thanks 我不认为 SVG 支持仅描边矩形或路径的一部分 描边不像 CSS 边框 您还有其他一些选择 所有这些都需要一
  • AJAX 调用后使用 jquery 刷新 DOM

    我正在做一个新项目http www hotwirerevealed com http www hotwirerevealed com它显示 识别 hotwire com 上的酒店 输入状态和目的地后 我有一个 javascript 函数 它
  • 如果按下警报,则转到“确定”按钮后的 URL

    我需要确保当用户在 JavaScript 警报窗口中单击 确定 时 浏览器会移动到不同的 URL 这可能吗 你是什 么意思 确保 alert message window location some url 在警报窗口中单击 确定 后重定向
  • 如何检测安装的Chrome版本?

    我正在开发一个 Chrome 扩展程序 我想知道是否有一种方法可以检测用户正在使用哪个版本的 Chrome 获取 Chrome 的主要版本作为整数 function getChromeVersion var raw navigator us
  • 获取此 contenteditable 元素中的当前行和行索引?

    我有一个这样的元素 span line 1 line 2 line 3 line 4 line 5 span 假设用户正在编辑 第 4 行 如何获取该 contenteditable 元素中的当前行和行索引 在插入符号位置 这是使用选择属性
  • 如何获取对象类型

    在我的 Google Apps 脚本应用程序中 我看到以下错误 脚本已完成 但返回值不是受支持的返回类型 如何找出我返回的值的类型 我试过 typeof obj 但我得到的只是它是一个对象 仅当缓存为空并且从电子表格加载数据时才会发生此错误
  • WEBP图像回退

    我在互联网上搜索了很多 找不到可以完整教授的正确示例或完整教程 所以请大家给我推荐一些好的例子 我已经在很多网站上尝试过 WEBP 代码 例如与现代化工具一起使用 检查浏览器支持或使用背景图像 有一篇关于 Stucox 的文章 您可以在其中
  • Phantomjs 可以工作,但速度很慢

    我正在尝试使用 PhantomJS 截取网页的屏幕截图 具体来说 我正在使用捕获的示例espn com from this http skookum com blog dynamic screenshots on the server wi

随机推荐