JavaScript基础(2)之arguments详解
来源:互联网 发布:保险大数据分析框架 编辑:程序博客网 时间:2024/05/18 12:36
理解参数arguments
- ECMAScript函数不介意传进来的参数个数和类型,
在函数体内可以通过arguments对象来访问这个参数数组
function hi(){ alert("hello"+arguments[0]+","+arguments[1]);}hi("kk","jun");// hellokk,jun
- 其实arguments只是与数组类似(并不是Array实例)例如:
function hi(name){ console.log(Array.isArray(arguments));// false}hi("name");
将arguments类数组对象转换成数组:Array.prototype.slice.call(arguments)
;
function hi(name){ var args = Array.prototype.slice.call(arguments); console.log(Array.isArray(args));// true}hi("name");
ES6新增实现:Array.from()
function hi(name){ var args = Array.from(arguments); console.log(Array.isArray(args));// true}hi("name");
- 通过访问arguments对象的length属性可以知道有多少个函数传递给了函数
function hi(name){ console.log(arguments.length);}hi("name");//1hi("name","age");//2
根据这个特性可以实现适当的功能,例如:
function add(){ if(arguments.length==1){ do something } if(arguments.length==2){ do something }}
- 没有传递值的命名参数自动赋值undefined,例如:
function hi(){ console.log(arguments[0]);}hi(); //undefined
有意思的题目
- 实现递归
var sum = function(n) { if(n == 1) { return 1; } else { return n + arguments.callee(n-1); //calllee,当函数被调用时,它的arguments.callee对象就会指向自身,也就是一个对自己的引用 } } console.log("sum =", sum(5));
- 不定参数个数求和
function add() { //console.log("length", arguments.length); var len = arguments.length, sum = 0; for (var i = 0; i < len; ++i) { sum += arguments[i]; } return sum; }; add(1,2,3,4,5);
1 0
- JavaScript基础(2)之arguments详解
- javascript之arguments详解
- javascript 函数详解2 -- arguments
- javascript函数之arguments(2)
- JavaScript基础-arguments
- javascript arguments属性详解
- javascript中的arguments详解
- Javascript arguments 对象详解
- JavaScript arguments 对象详解
- JavaScript arguments详解
- JavaScript arguments对象详解
- javascript之arguments对象
- Javascript之arguments
- JavaScript之arguments
- js之arguments详解
- JavaScript基础 函数的arguments
- 温故而知新: JavaScript arguments 对象详解
- 深入理解javascript之arguments
- 算法分析与设计课程(10):【leetcode】Simplify Path
- 教你如何在Oracle官网免登陆下载oracle数据库以及相关工具
- 四月英语总结
- Spring知识整理
- 多线程样例
- JavaScript基础(2)之arguments详解
- rapidxml在qt linux(gcc)下写xml文件出错
- [python笔记]2.1变量
- 机器学习(七)探寻模式——基于关联规则的购物篮分析
- 做游戏,学编程(C语言) 1 实现弹跳小球
- CentOS 安装NodeJS
- hadoop重新编译---安装系列二
- 火力发电厂工控系统网络安全解决方案
- HDOJ 2005 第几天?