在 javascript 对象初始化中使用数字作为属性有什么好处
What's the benefit of using numbers as properties in a javascript object initialization?
我正在学习javascript,在阅读了有关如何初始化对象的教程后,我发现了以下示例:
var obj = { property_1: value_1, // property_# may be an identifier...
2: value_2, // or a number...
// ...,
"property n": value_n }; // or a string
我的疑问在于带有数字作为名称的财产。我理解这一点,但我找不到使用它的真正好处。我读了这个问题,从我的角度来看,这种符号可能会导致我的代码设计不佳或不必要的复杂性,所以我想知道为什么存在这种语法。
这种声明经常使用吗?在什么样的情况下,这可能是一个理想的选择?
JavaScript 数组是一些键是整数 (*( 的对象。
[9, 8, 7]
类似于对象{ 0: 9, 1: 8, 2: 7 }
。
主要区别在于该数组具有 Array.prototype
而不是 Object.prototype
的原型。
(*( 正如 Benjamin Gruenbaum 指出的那样,数组键可以强制到 UInt32。对象的键始终是字符串或符号。正如 djechlin 指出的那样,数组允许具有任何类型的键的属性,但我不建议在数组上添加自己的非整数键。
参数
名为 arguments
的类似数组的对象在任何函数 (*( 中都可用。函数接收的每个参数都是arguments
上的一个属性,带有一个类似整数的键。
在下面的代码中,example
调用返回一个类似于 { 0: 9, 1: 8, 2: 7, length: 3 }
的对象。
function example(a, b, c) {
return arguments;
}
example(9, 8, 7);
(*(在现代JavaScript中,箭头函数中没有arguments
对象。
在创建稀疏数组和矩阵时,使用整数作为对象键很有用,例如,将除第 10 个元素之外的所有元素都为 0 的 1000 个元素向量映射为
v = {10: 1}
这里不能使用 JS 数组,因为您需要能够使用键指定元素位置。
在 ECMAscript 6 中使用 [Map]
1 更好,因为它实际上是作为映射制作的,但在基于旧 ES 标准的代码库中,您可能仍然会看到对象用于此类映射。
该代码是为了说明这一点而人为的。 但是,既然你要求一个可以使用它的例子,让我给你几个。
- 如果您
收到 JSON 格式的数据,可能会像这。取决于外部系统的详细信息。
另一个可能是为了保持一致性。 例如,假设您有一个数据模型您将从中生成 HTML。 可能是用途每个字段的可能值的对象(假设字段只能采用多个可能值之一(。 这些字段然后可以呈现为单选按钮或选择。 一些这些字段将使用字符串作为可能的值,因此自然事情是 tyo 将可能的值列表变成一个对象。 但有些将使用整数键 - 仍然可能最好坚持列表始终是一个对象。
例如
var prio_field_pos_vals = {
0: 'Show Stopper',
1: 'Urgent',
2: 'High',
3: 'Low'
}
当然,这可能不会被定义为一个独立的变量,而是被定义为模型的一部分,但你明白了。 我会避免为对象使用整数键(以及字符串中带有空格的键(,除非您有理由,但当您有理由时,请使用它们。
- 全局变量和全局对象的属性之间有什么区别吗
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- 鼠标悬停的属性数据是什么
- 为Google闭包类定义属性的首选方式是什么
- 什么's;var'声明的变量和'这'在Javascript中创建了属性
- 骨干中的原始属性对象是什么
- 在jquery中,从同一对象的属性设置输入字段和标签的正确方法是什么
- 单击TextArea'时,文本区域中的属性名称是什么;s上下箭头按钮
- 在 app.locals 上设置属性和调用 app.set() 有什么区别?
- 此属性检索代码有什么问题
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 什么'是使输入上禁用的属性与Meteor辅助对象反应的最佳方法
- 在jQuery方法中编写自定义属性的正确语法是什么
- 如果我们使用:运算符在函数内部定义一个属性,会发生什么
- 什么类型的对象/属性是原型getter和setter
- 在异步函数调用过程中,当对象的属性值发生变化时,JavaScript中的对象属性值会发生什么变化
- 检查链接对象形式中未定义属性的最佳实践是什么
- 什么是“;OWN”;属性
- 访问javascript对象的属性返回undefined,原因是什么
- 在旧的移动浏览器中会发生什么;不支持vw或vh属性