服务器之家

服务器之家 > 正文

Javascript中arguments对象详解

时间:2021-04-06 16:06     来源/作者:JS教程网

在上篇文章中我们讨论了javascript中的默认参数,这篇文章,我们来讨论下javascript的arguments参数对象。

如下例的一个函数,我们如何根据传入参数的不同来做不同的处理呢?

 

复制代码 代码如下:


function addAll () {
    // What do we do here?
}

 

// Should return 6
addAll(1, 2, 3);

// Should return 10
addAll(1, 2, 3, 4);

 

幸运的是,javascript有一个arguments对象,可以来处理上述情况。arguments对象是一个类数组对象,想了解arguments对象的详细情况请戳这里,我们使用arguments对象来改变上例:

 

复制代码 代码如下:


function addAll () {
    var sum = 0;

 

    for (var i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }

    return sum;
}

// Returns 6
addAll(1, 2, 3);

// Returns 10
addAll(1, 2, 3, 4);

 

上面我们说过arguments对象是一个类数组对象,下面我们来测试下:

 

复制代码 代码如下:


function getName() {
 console.log(Array.isArray(arguments));
}

 

//will output false
getName("benjamin");

 

上述测试结果可以看出:
它不是一个数组对象,那么它和数组对象有什么不同呢?详情请戳这里。

执行下面例子会抛出一个错误:

 

复制代码 代码如下:


function sortArgs () {
    // Uncaught TypeError: undefined is not a function
    sorted = arguments.sort()

 

    return sorted;
}
sortArgs();

 

我们可以像下面这样把一个类数组对象转换为数组对象:

 

复制代码 代码如下:


function sortArgs () {
    // Convert arguments object into a real array
    var args = [].slice.call(arguments);

 

    // Now this will work!
    sorted = args.sort()

    return sorted;
}

//will output [1, 2, 3]
console.log(sortArgs(1,3,2));

 

如果你感觉这篇文章对你有帮助,希望转给更多需要的人。文章不妥之处,欢迎留言斧正。

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部

496
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40