arguments 和 rest 的区别

一.类型

1. arguments并不是数组,而是一个类数组对象,它包含length属性。我们可以通过Array.prototype.slice.call(arguments)将获取对应真实数组。

arguments instanceof Array //false

arguments instanceof Object //true

2. rest是一个真实数组。

rest instanceof Array //true

3. 万物皆对象。

rest instanceof Object //true

Array instanceof Object //true

二.参数

1. arguments是参数的类数组化表现,它包含所有可用参数。

2. rest是非定义的多余变量数组。

function Test(x, ...rest){

    arguments.length; //3

    rest.length; //2

}

Test(1, 2, 3);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,663评论 0 5
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,201评论 0 13
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 1,098评论 0 1
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,162评论 0 21
  • 如果我不是你最喜欢的人 那就不要夹杂一丝怜悯 冷漠的对待我吧 因为我会害怕 害怕等不到你的告白 又无法忘掉你的关怀...
    数__风流人物阅读 315评论 2 3