javascript arguments使用示例


Posted in Javascript onDecember 16, 2014
<script Language="JavaScript">

//第一个参数值. 

function test(a,b,c,d){ 

  alert(arguments[0]); 

} 

//arguments[0]实际上就是a,同理,arguments[1]就是b,依次c,d

</script>

 
 <script Language="JavaScript">

{

    function function_Name(exp1,exp2,exp3,exp4)

    {

        var umber="";

        umber=arguments.length;

        alert(umber);

    }

            function_Name('a','b','c','d');         都可以调用

        //    function_Name("a","b","c","d");     都可以调用

}

</script>

1、在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例。可以通过如下代码得以证实(当然,实际上,在函数funcArg中,调用arguments是不必要写成funcArg.arguments,直接写arguments即可)。

 Array.prototype.testArg = "test";

 function funcArg() {

     alert(funcArg.arguments.testArg);  

     alert(funcArg.arguments[0]);

 }

 alert(new Array().testArg); // result: "test"

 funcArg(10);                // result: "undefined"  "10"

2、arguments对象的长度是由实参个数而不是形参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者值是同步的,但是针对其中一个无值的情况下,对于此无值的情形值不会得以同步。如下代码可以得以验证。

 function f(a, b, c){

     alert(arguments.length);   // result: "2"

     a = 100;

     alert(arguments[0]);       // result: "100"

     arguments[0] = "qqyumidi";

     alert(a);                  // result: "qqyumidi"

     alert(c);                  // result: "undefined"

     c = 2012;

     alert(arguments[2]);       // result: "undefined"

 }

 f(1, 2);

3、由JavaScript中函数的声明和调用特性,可以看出JavaScript中函数是不能重载的。

根据其他语言中重载的依据:"函数返回值不同或形参个数不同",我们可以得出上述结论:

第一:Javascript函数的声明是没有返回值类型这一说法的;

第二:JavaScript中形参的个数严格意义上来讲只是为了方便在函数中的变量操作,实际上实参已经存储在arguments对象中了。

另外,从JavaScript函数本身深入理解为什么JavaScript中函数是不能重载的:在JavaScript中,函数其实也是对象,函数名是关于函数的引用,或者说函数名本身就是变量。对于如下所示的函数声明与函数表达式,其实含以上是一样的(在不考虑函数声明与函数表达式区别的前提下),非常有利于我们理解JavaScript中函数是不能重载的这一特性。

 function f(a){

     return a + 10;

 }

 function f(a){

     return a - 10;

 }

 // 在不考虑函数声明与函数表达式区别的前提下,其等价于如下

 var f = function(a){

     return a + 10;

 }

 var f = function(a){

     return a - 10;

 }

4、arguments对象中有一个非常有用的属性:callee。arguments.callee返回此arguments对象所在的当前函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名本身。

如下:

 function count(a){

     if(a==1){

         return 1;

     } 

     return a + arguments.callee(--a);

 }

 var mm = count(10);

 alert(mm);
Javascript 相关文章推荐
JavaScript Date对象使用总结
May 14 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
Feb 02 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
Dec 14 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
Oct 08 Javascript
JS仿淘宝实现的简单滑动门效果代码
Oct 14 Javascript
jquery之别踩白块游戏的简单实现
Jul 25 Javascript
原生JS实现N级菜单的代码
May 21 Javascript
JavaScript中的return布尔值的用法和原理解析
Aug 14 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
bootstrap table实现iview固定列的效果实例代码详解
Sep 30 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
May 26 Javascript
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
javascript实现日期格式转换
Dec 16 #Javascript
javascript实现禁止复制网页内容
Dec 16 #Javascript
node.js中的fs.rmdirSync方法使用说明
Dec 16 #Javascript
node.js中的fs.rmdir方法使用说明
Dec 16 #Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
Dec 16 #Javascript
node.js中的fs.fchownSync方法使用说明
Dec 16 #Javascript
node.js中的fs.fchown方法使用说明
Dec 16 #Javascript
You might like
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
PHP中调用JAVA
2006/10/09 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
js常用排序实现代码
2010/12/28 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
企业爱岗敬业演讲稿
2014/09/04 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
家长评语怎么写
2014/12/30 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis