Javascript 如果JSON数组是一个对象,为什么它会列在原语中?
当我第一次阅读JSON格式规范时,我的印象是对象是键值对的集合(值可以是任何类型),数组是相同类型的零个或多个元素的集合 对象(混合值): 阵列(单一类型): 我遇到了一些示例,其中包括具有混合类型元素的数组。在Node.js中测试这是合法的之后,我不禁要问:为什么有两种不同的集合类型如此相似 数组(混合类型): 我能看到的唯一主要区别是数组不需要为每个“值”都使用“键”。还有其他显著差异吗 编辑:Javascript 如果JSON数组是一个对象,为什么它会列在原语中?,javascript,json,node.js,Javascript,Json,Node.js,当我第一次阅读JSON格式规范时,我的印象是对象是键值对的集合(值可以是任何类型),数组是相同类型的零个或多个元素的集合 对象(混合值): 阵列(单一类型): 我遇到了一些示例,其中包括具有混合类型元素的数组。在Node.js中测试这是合法的之后,我不禁要问:为什么有两种不同的集合类型如此相似 数组(混合类型): 我能看到的唯一主要区别是数组不需要为每个“值”都使用“键”。还有其他显著差异吗 编辑: 考虑到原始问题的重复性,数组是一个修饰过的对象,我稍微修改了这个问题。(对最初的回答表示歉意。)
考虑到原始问题的重复性,数组是一个修饰过的对象,我稍微修改了这个问题。(对最初的回答表示歉意。) 我最好的猜测是数组非常常见,为它们添加语法和预定义类主要是为了方便 可能重复/参考问题: 数组是具有方便方法的对象 当然,除了它们的性质之外,您还需要一个有序的结构,您可以在[array]上迭代,以及一个key:value集合,您希望通过点或括号符号[
someObj.someKey
或someObj[someKey]
]访问其值
数组是具有方便方法的对象
当然,除了它们的性质之外,您还需要一个有序的结构,您可以在[array]上迭代,以及一个key:value集合,您希望通过点或括号符号[someObj.someKey
或someObj[someKey]
]访问其值
数组是具有方便方法的对象
当然,除了它们的性质之外,您还需要一个有序的结构,您可以在[array]上迭代,以及一个key:value集合,您希望通过点或括号符号[someObj.someKey
或someObj[someKey]
]访问其值
数组是具有方便方法的对象
除了它们的性质外,当然你还需要一个有序的结构,你可以在[array]上迭代,还有一个key:value集合,你可以通过点或括号符号[someObj.someKey
或someObj[someKey]
]来访问它的值。一个“集合”可以有许多不同的属性(在“其行为方式”的含义中):
- 有保证订单吗
- 它是一个键值存储,其中的键可以是任意的吗
- 它是同质的还是异质的
- 它是随着你放入物品而增长还是有固定的尺寸
- 等等等等
- 有保证的订单
- 键仅为数字
- 数字键是连续的(它们实际上不是,数组是稀疏的,但是当在集合上迭代时,它应该被认为是连续的)
- 可以是异质的
- 无保证订单
- 键值关联集合
- 可以是异质的
- 有保证订单吗
- 它是一个键值存储,其中的键可以是任意的吗
- 它是同质的还是异质的
- 它是随着你放入物品而增长还是有固定的尺寸
- 等等等等
- 有保证的订单
- 键仅为数字
- 数字键是连续的(它们实际上不是,数组是稀疏的,但是当在集合上迭代时,它应该被认为是连续的)
- 可以是异质的
- 无保证订单
- 键值关联集合
- 可以是异质的
- 有保证订单吗
- 它是一个键值存储,其中的键可以是任意的吗
- 它是同质的还是异质的
- 它是随着你放入物品而增长还是有固定的尺寸
- 等等等等
{
"key": "value",
"key2": 2
}
[1, 2, 3]
["one", "two", "three"]
[
{"key": "value"},
{"key2": 2}
]
[1, "two", {"three": 4}]
[] instanceof Object
> true