FileList 和 File[] (又名文件数组)有什么区别

Sim*_*rta 4 javascript drag-and-drop typescript angular

当我在浏览器中接收文件时,我会得到一个FileList对象。这种类型的目的是什么?据我所知,它几乎与 TypescriptFile[]或旧的 JavaScript 文件对象数组相同。

据我所知, FileList 较差,因为您无法使用以下之一迭代值或索引

for (let file of files) {
  // read file
}

for (let index in files) {
  // read files[index]
}
Run Code Online (Sandbox Code Playgroud)

我也没有看到历史原因,因为Array of File应该至少和 FileList 一样长。

我在这里错过了什么吗?

art*_*iak 5

看来你完全正确 - 从官方规范来看:

注意:FileList 接口应被视为“有风险”,因为 Web 平台的总体趋势是用 ECMAScript [ECMA-262] 中的数组平台对象替换此类接口。特别是,这意味着排序 filelist.item(0) 的语法存在风险;FileList 的大多数其他编程使用不太可能受到最终迁移到数组类型的影响。

这个接口相当旧,与NodeList非常相似,尽管后者进行了一些现代化改造。