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 相关文章推荐
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
js中的push和join方法使用介绍
Oct 08 Javascript
js css 实现遮罩层覆盖其他页面元素附图
Sep 22 Javascript
javascript html5实现表单验证
Mar 01 Javascript
AngularJS基础 ng-mousemove 指令简单示例
Aug 02 Javascript
jQuery基本筛选选择器实例代码
Feb 06 Javascript
Bootstrap表单使用方法详解
Feb 17 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
对vue v-if v-else-if v-else 的简单使用详解
Sep 29 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
Sep 11 Javascript
js实现图片无缝循环轮播
Oct 28 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 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
php抽象类和接口知识点整理总结
2019/08/02 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
JavaScript 的方法重载效果
2009/08/07 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
vue模块移动组件的实现示例
2020/05/20 Javascript
Python的re模块正则表达式操作
2016/05/25 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
高级工程师岗位职责
2013/12/15 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
四年级学生期末评语
2014/12/26 职场文书
学校运动会加油词
2015/07/18 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
诚实守信主题班会
2015/08/13 职场文书
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
Windows7下FTP搭建图文教程
2022/08/05 Servers