Javascript Array.from(arguments)是创建参数数组的可接受方法吗?

Javascript Array.from(arguments)是创建参数数组的可接受方法吗?,javascript,arrays,arguments,Javascript,Arrays,Arguments,在某种程度上,Array.from(arguments)是否比创建参数数组的Array.prototype.slice.call(arguments)更糟糕?我还没有看到在任何地方使用前者,后者似乎是根据我所读的内容创建参数数组的标准方法。有人能解释这种差异吗?听起来像是数组。从(arg)是一种更好的方法,因为它正是这个函数应该做的 但是,此功能是的一部分。据介绍,目前并非所有浏览器都支持它 因为它是一种“实验”函数,所以它仍然没有被广泛使用。在可预见的未来,我们将在任何地方看到Array.fr

在某种程度上,
Array.from(arguments)
是否比创建参数数组的
Array.prototype.slice.call(arguments)
更糟糕?我还没有看到在任何地方使用前者,后者似乎是根据我所读的内容创建参数数组的标准方法。有人能解释这种差异吗?

听起来像是数组。从(arg)是一种更好的方法,因为它正是这个函数应该做的

但是,此功能是的一部分。据介绍,目前并非所有浏览器都支持它

因为它是一种“实验”函数,所以它仍然没有被广泛使用。在可预见的未来,我们将在任何地方看到
Array.from的使用

例如,有一些很好的功能,如:

var str = "abcdef";
if (str.startsWith('abc') && str.endsWith('def'))
但是,如果您使用此功能打开random网站,您将看到一个自定义的编写函数,该函数使用RegExp或
indexOf
。原因是所有这些网站都是在引入本标准之前编写的

同时,许多开发人员更喜欢使用旧式函数,因为所有浏览器都支持它们。引入新标准并移植到它总是很困难的。

Array.from()
是ES6指定的从任何类似数组的对象或可编辑对象创建数组对象的方法

var arr = Array.from(arguments)
是一本教科书示例,介绍了它的设计目的,旨在取代以前的工作方法,例如:

var arr = Array.prototype.slice.call(arguments)
唯一需要注意的是,这是ES6的功能,因此只在最新的浏览器中出现。为了在许多浏览器中安全地使用它,您可以安装类似的polyfill,也可以使用类似BabelJS的东西将ES6代码转换为与ES5兼容的代码