什么使空对象有资格成为可迭代对象或类数组对象?

问题描述 投票:0回答:1

鉴于

Array.from
采用 可迭代或类似数组的对象 作为第一个参数,为什么它在传递空对象时不会抛出错误,如下所示:

let emptyObject = Array.from( {} )

At iterable 被定义为实现 iterable 协议iterator 协议 的对象。空物体似乎两者都不会:

let emptyObject = {}

console.log(emptyObject[Symbol.iterator])
console.log(emptyObject['next'])
console.log(Array.from(emptyObject))

类似数组的对象具有

length
属性并且可以建立索引 (ref)。空对象没有
length
属性。

let emptyObject = {}

console.log(emptyObject['length'])
console.log(Array.from(emptyObject))

空对象如何符合资格?

javascript object is-empty
1个回答
0
投票

似乎它只是为不符合可迭代或类似数组的值创建一个空数组,除了

null
undefined

console.log(Array.from(1));
console.log(Array.from(false));
console.log(Array.from(null));

© www.soinside.com 2019 - 2024. All rights reserved.