您的位置:首页 > Web前端 > JavaScript

JavaScript如何处理可变参数

2015-10-29 14:44 399 查看
可变参数是很有用处的,例如c++的printf,sprintf,没这玩意,你想灵活的处理字符串是一件很难的事情。

不同于C++可变参数的函数,JavaScriptt的可变参数函数不需要声明任何形参,我对JavaScript不熟,也不知道这样说符不符合这门语言的规范,以C++做类比,只是想容易理解一些。

还是直接来个例子吧

function TestAgr(){
console.log(arguments);
}
TestAgr("a","b","c");
运行的结果是
{ '0': 'a', '1': 'b', '2': 'c' }

函数声明时,没有参数,这个arguments自动的存储了传入的实参,而且是用字典的方式。那么如果变换传入参数的类型会怎样呢?

TestAgr(1,true,4.3);
这次,传入三个参数,分别是整数,布尔,浮点,对应的结果

{ '0': 1, '1': true, '2': 4.3 }
传入的是什么,接收到的就是什么,那么再来点复杂的,会如何呢?

var list =[];
list.push('1');
list.push(3);
list.push(true);
var dic = {};
dic['1'] = 1;
dic['2'] = false;
dic['3'] = "sd";
TestAgr(1,list,dic);
对应的结果是

{ '0': 1,
'1': [ '1', 3, true ],
'2': { '1': 1, '2': false, '3': 'sd' } }
还是传入什么,接收到的就是什么,JavaScript利用闭包实现类似于面向对象中类的东东,这个玩意我还不熟悉,因此,这里就不进行验证了。可变参数最多可以传入多少个呢?我百度了一下,没有明确的说法,我自己试验10个是没有问题的。我想更多也应该是没有问题的,实际应用时再去关心吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: