Javascript中arguments对象详解


Posted in Javascript onOctober 22, 2014

在上篇文章中我们讨论了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));

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

Javascript 相关文章推荐
js png图片(有含有透明)在IE6中为什么不透明了
Feb 07 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
Nov 19 Javascript
基于JQuery的动态删除Table表格的行和列的代码
May 12 Javascript
Javascript 实现的数独解题算法网页实例
Oct 15 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
Oct 31 Javascript
基于node.js制作简单爬虫教程
Jun 29 Javascript
关于JavaScript语句后面的分号问题
Dec 07 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
Apr 23 Javascript
实例讲解JavaScript截取字符串
Nov 30 Javascript
layUI实现前端分页和后端分页
Jul 27 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
Sep 23 Javascript
JavaScript小技巧带你提升你的代码技能
Sep 15 Javascript
Javascript中的默认参数详解
Oct 22 #Javascript
js style动态设置table高度
Oct 21 #Javascript
js读写json文件实例代码
Oct 21 #Javascript
一个JavaScript防止表单重复提交的实例
Oct 21 #Javascript
javascript Deferred和递归次数限制实例
Oct 21 #Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
Oct 21 #Javascript
jquery中post方法用法实例
Oct 21 #Javascript
You might like
在PWS上安装PHP4.0正式版
2006/10/09 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
javascript 禁止复制网页
2009/06/11 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
js实现抽奖功能
2020/11/24 Javascript
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
Python logging模块用法示例
2018/08/28 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
Python实现Restful API的例子
2019/08/31 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
哈理工毕业生的求职信
2013/12/22 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
感恩之星事迹材料
2014/05/03 职场文书
我爱我校演讲稿
2014/05/21 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
开票员岗位职责
2015/02/12 职场文书
读书笔记格式
2015/07/02 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
win sever 2022如何占用操作主机角色
2022/06/25 Servers