【JS】 arguments参数简介

在读singalR.js源码时发现了它里面的一个format方法:

  format: function () {
            /// <summary>Usage: format("Hi {0}, you are {1}!", "Foo", 100) </summary>
            var s = arguments[0];
            for (var i = 0; i < arguments.length - 1; i++) {
                s = s.replace("{" + i + "}", arguments[i + 1]);
            }
            return s;
        },

然后发现,format function里面并没有参数,还是直接用arguments接收,后来学习了一下,发现arguments方法很强大,他能直接被调用,不管传递几个参数,他都能接收到,上边的方法就实现了.NET 里面 string.Format()方法。以后做参数判断,可以用arguments.length判断传递的参数数量是不是正确的。

最后,定义变量名不要为arguments,这就好比保留字,所以还是不要冲突的好。上述代码可以作为工具类里的一个方法了,简单粗暴实用。

时间: 2024-10-11 20:22:24

【JS】 arguments参数简介的相关文章

js arguments参数

在调用函数时,浏览器每次都会传递进两个隐含的参数: 1.函数的上下文对象 this 2.封装实参的对象 arguments - arguments是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度 - 在调用函数时,我们所传递的实参都会在arguments中保存 - arguments.length可以用来获取实参的长度 - 我们即使不定义形参,也可以通过arguments来使用实参,只不过比较麻烦 arguments[0] 表示第一个实参 arguments[1] 表示第二个实参 .

js理解参数-arguments对象

js理解参数-arguments对象: 1. ECMAScript函数的参数: ECMAScript函数的参数在内部是用一个数组来表示的,函数接收到的始终是这个数组,而不关心数组中包含多少个参数,也不在乎传进来的参数是什么数据类型. 在函数体内可以通过arguments对象来访问这个参数数组. 2. 关于命名参数的问题: ECMAScript函数中命名的参数只提供便利,但不是必需的.在ECMAScript中,解析器不会验证命名参数,而是通过访问arguments对象的length属性获得参数的个

js 函数参数个数

js中的函数参数个数不是确定区别函数的,也就是说你定义一个函数A(x,y)    当你使用这个函数时,你可以A();A(1);A(1,2);A(1,2,3);都是调用这个A(x,y)函数. 例子: <html> <head> <title> 函数调用测试,参数个数和函数声明不一样多 </title> <script language="JavaScript"> function needTwoPara(p1,p2){ var

js arguments对象

在javascript中,不需要明确指出参数名,就能访问它们.如: function hi(){if(arguments[0]=="andy"){     return;}alert(arguments[0]);} 用arguments[0]可以访问第一个参数,如此类推. 利用arguments对象可以实现重载,利用arguments.length可以获取函数的参数个数,如下: function hi(){if(arguments.length==1){    alert(argume

(转)js函数参数设置默认值

原文:http://www.cnblogs.com/RightDear/archive/2013/06/26/3156652.html js函数参数设置默认值 php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){   return $a+$b; } echo simue(); //输出3 echo simue(10); //输出12 echo simue(10,20); //输出30 但js却不能这么定义,如果写function

mqtt------ mosca服务器端参数简介

一:服务器端 为什么使用mosca:mosca是基于node.js开发,上手难度相对较小,其次协议支持完整,除了不支持Qos 2,其它的基本都支持.持久化支持redis以及mongo.二次开发接口简单.部署非常简单,并且支持docker镜像. mosca参数简介: var mosca = require('mosca') ascoltatore :  是Mosca作者开发的一个订阅与发布类库,Mosca核心的订阅与发布模型 var ascoltatore = { type: 'redis', /

js传递参数

/js中参数的传递之数值传递 //这次传递相当于将count的值拷贝了一份给num,num的改变并不影响count(两块不同的内存区域) function addTen(num){ num += 10; return num; } var count = 20; var result = addTen(count); console.log(count); //20 console.log(result); //30 //js中参数传递之对象的传递 //这次传递是person的值(person在

Node.js 教程 01 - 简介、安装及配置

目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 谁适合阅读本教程?

css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version=)

1 <span style="font-size:14px;">css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version= ) 2 3 <script type=”text/javascript” src=”jb51.js?version=1.2.6″></script> 4 <link rel=’stylesheet’ href=’base.css?version=2.3.3′ type=’