JavaScript如何处理可变参数
2015-10-29 14:44
399 查看
可变参数是很有用处的,例如c++的printf,sprintf,没这玩意,你想灵活的处理字符串是一件很难的事情。
不同于C++可变参数的函数,JavaScriptt的可变参数函数不需要声明任何形参,我对JavaScript不熟,也不知道这样说符不符合这门语言的规范,以C++做类比,只是想容易理解一些。
还是直接来个例子吧
函数声明时,没有参数,这个arguments自动的存储了传入的实参,而且是用字典的方式。那么如果变换传入参数的类型会怎样呢?
不同于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个是没有问题的。我想更多也应该是没有问题的,实际应用时再去关心吧。
相关文章推荐
- 图解JavaScript中的this关键字
- 错误整理(一)使用 JSTL 标签出现警告
- Oozie安装ExtJs教程
- js数组取最大值最小值,以及小数取整
- js倒计时
- JS原型与原型链终极详解(推荐阅读)
- js中的懒加载函数
- ajax&&json
- js判断访问终端端
- JS 发送POST
- [转]创建一个JavaScript弹出DIV窗口层的效果
- JavaScript基础知识梳理,你能回答几道题?
- 超轻量级异步JS框架,别再让嵌套影响我们的优雅代码!
- jsp注释
- js判断请求的url是否可访问,支持跨域判断
- 个人笔记 js 01 js里window.open打开的子页面调用父页面的function
- js父子页面跨域访问
- js父子页面跨域访问
- JS中实现replaceAll的方法
- DJANgo json 时间