声明 JavaScript 数组时“{}”和“[]”有什么区别?

2023-12-13

声明 JavaScript 数组时“{}”和“[]”有什么区别? 通常我声明像

var a=[];

将数组声明为的含义是什么var a={}


似乎没有人解释数组和对象之间的区别。

[]正在声明一个数组。

{}正在声明一个对象。

数组具有对象的所有功能以及附加功能(您可以将数组视为对象的子类),其中在 Array 子类中添加了附加方法和功能。实际上,typeof [] === "object"进一步向您展示数组是一个对象。

附加功能包括一个神奇的.length属性,用于跟踪数组中的项目数以及对数组进行操作的一系列方法,例如.push(), .pop(), .slice(), .splice()等等...您可以看到数组方法列表here.

对象使您能够将属性名称与值关联起来,如下所示:

var x = {};
x.foo = 3;
x["whatever"] = 10;
console.log(x.foo);      // shows 3
console.log(x.whatever); // shows 10

对象属性可以通过以下方式访问x.foo语法或通过类似数组的语法x["foo"]。后一种语法的优点是您可以使用变量作为属性名称,例如x[myvar]使用后一种语法,您可以使用包含 Javascript 不允许的字符的属性名称x.foo syntax.

属性名称可以是任何字符串值。


数组是一个对象,因此它具有对象的所有相同功能以及用于管理数组的一系列附加功能。ordered, 顺序的从以下位置开始的编号索引列表0并达到一定的长度。数组通常用于通过数字索引访问的有序项目列表。而且,由于数组是有序的,因此有很多有用的功能来管理列表的顺序.sort()或从列表中添加或删除内容。

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

声明 JavaScript 数组时“{}”和“[]”有什么区别? 的相关文章

随机推荐

  • 如何在 PHP 中传递系统命令时转义字符

    我有一个运行 PHP HTML 页面的 Linux Web 服务器 for loop instruction I m constructing the instruction here instruction lspci grep i vg
  • 如何使用 python 3.2 安装 MySQLdb

    我正在尝试使用 python 连接到 mySQL 据我了解 你需要有 MySQLdb 它是一些 python 连接器模块 我的第一个问题是没有正确版本的 mySQLdb 可以找到here 然后我应该打开一个命令行窗口并导航到我刚刚下载的文件
  • Python 子集和

    我正在尝试编写一个函数 该函数不仅可以确定集合的子集之和是否添加到所需的目标数字 而且还可以打印作为解决方案的子集 这是我用于查找子集是否存在的代码 def subsetsum array num if num 0 or num lt 1
  • 如何在 React js Web 应用程序中添加 PAYTM 网关集成?

    我从这里开始工作https github com paytm paytm pg node sdk sample blob master javascript DemoApp js我在 Express 中使用了它 它正在工作 但现在我想从反应
  • 与尺度无关的元素

    我正在开发一个 2D 计算几何库 我希望能够吐出图片来帮助调试 我想要的图元是点 线段和文本 但我事先不知道我有兴趣查看什么比例 也许只有一小部分多边形无法正常工作 所以我也需要能够缩放和平移图像 我挂了SVGPan当我在 Chrome 中
  • 如何为凸包算法的中间步骤设置动画?

    我正在尝试制作某种动画 以便用户可以理解或看到查找点集的凸包所采取的步骤 例如 假设我使用下面的代码进行 Graham Scan 有哪些方法可以对线条添加和删除进行动画处理 即使对于很多点 也需要时间来处理 然后几乎立即将它们全部绘制出来
  • 使用 BOOST::associative property map 插入 boost::BIMAP ... 失败

    参考我之前提出的有关 boost bimaps 和 boost 关联属性映射接口的问题here 我想为我的 bimap 使用 Put 和 Get 辅助函数 参考给出的示例代码here 我尝试添加以下内容 但由于断言失败而出现很长的编译错误
  • “int”对象没有属性“x”

    我正在尝试制作一个程序来添加向量 add class vects def init self x y self x x self y y def add self vect total x self x vect x total y sel
  • 通过服务将 Symfony EntityManager 注入表单类型

    我需要根据实体是否是最新发布的版本来修改表单中的一些字段 标签和类 因此 我需要能够将实体管理器注入到我的 formType 中 以便在事件侦听器中我可以将当 前版本与实体的已发布版本进行比较 但我什至无法得到entityManager首先
  • 如何调试 git svn 获取无效的 XML

    我尝试使用将 SVN 存储库转换为 gitgit2svn 我的服务器使用用户名和密码 I did svn2git https example com svn bar 并得到错误 Initialized empty Git repositor
  • CSS 水平滚动溢出与 jQuery 滑块

    我正在尝试设置一个全屏 jquery 滑块 我将项目分为两个步骤 1 css 和 2 js 1 CSS 下面是我正在拍摄的图片 没有固定高度 下面是我到目前为止不起作用的代码
  • 如何在给定时间后重新加载网页的一部分?

    我想做的是 根据特定条件显示一条消息 因此 我将在给定时间后连续读取数据库 并相应地向用户显示消息 但我希望该消息仅在页面的一部分 比如说 DIV 上更新 任何帮助 将不胜感激 谢谢 这可以使用setInterval and jQuery
  • 如何将日期对象添加到 C# 列表? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 早些时候我已经发布了这个问题排序日期和时间 答案是mi
  • 虚拟析构函数是继承的吗?

    如果我有一个带有虚拟析构函数的基类 派生类也有声明虚拟析构函数吗 class base public virtual base class derived base public virtual derived 1 derived 2 具体
  • Android 中的水平 ListView?

    是否有可能使ListView水平的 我已经使用图库视图完成了此操作 但所选项目会自动到达屏幕中央 我不希望所选项目位于我单击的同一位置 我该如何解决这个问题 我的想法是设置ListView带有水平滚动条 分享你的想法 根据 Android
  • 正则表达式在 C 中失败,在线测试通过

    当我在 C 中使用应该有效的正则表达式时 它会失败 当我将这个正则表达式粘贴到此处时 https regex101 com并测试它似乎很好 正如预期的那样 clang 3 8 0 include
  • 我的第一个计算器需要帮助

    所以我刚刚开始学习编码 已经学习了大约 1 周 我想尝试制作一个可以执行 和 的计算器 但无法弄清楚如何让用户选择他想要使用的内容 有没有人可以帮助我 这是代码 int x int y Console WriteLine Welcome t
  • C++ 中的令牌及其使用方式

    在 Bjarne Stroustrup 的 使用 C 编程原理与实践 一书中 他解释了如何使用标记来阻止 C 自动使用简单计算器上的运算顺序 他在书中给出的代码不起作用 要么是因为我的愚蠢 要么是因为我遗漏了一些东西 我知道令牌本质上是将代
  • 如何知道 jQuery 选项卡上的选项卡是否已启用?

    我在 jQuery UI Tabs 的 API 中找不到 http docs jquery com UI Tabs 一种知道是否启用某个选项卡的方法 我需要它 因为在我的应用程序的事件中 我只想在禁用某个选项卡时才启用该选项卡 你知道如何从
  • 声明 JavaScript 数组时“{}”和“[]”有什么区别?

    声明 JavaScript 数组时 和 有什么区别 通常我声明像 var a 将数组声明为的含义是什么var a 似乎没有人解释数组和对象之间的区别 正在声明一个数组 正在声明一个对象 数组具有对象的所有功能以及附加功能 您可以将数组视为对