通过访问arguments对象的length属性可以获取有多少个参数传递给了函数。

如:每次被调用的时候,输出传入其中的参数个数

function doAdd(){
alert(arguments.length)
}
doAdd() //0
doAdd(1) //1
doAdd(1, 2) //2
doAdd("string", 1) //2

由此,可以利用这一点,函数能够接受任意个参数参数并分别实现适当的功能。

我们在封装函数的时候,会携带不同的参数,我们想要获取指定的参数,可以通过 arguments[ ] 来拿到

function doAdd(){
if(arguments.length ==1 ){
alert(arguments[0])
}else if(arguments.length ==2 ){
alert(arguments[0] + arguments[1])
}
}
doAdd(1) // 1
doAdd(1, 2) // 3

接下来,我们再来看一个例子,arguments对象可以与命名参数一起使用。

function doAdd(num1, num2){
if(arguments.length ==1 ){
alert(num1 + arguments[0])
}else if(arguments.length ==2 ){
alert(arguments[1] + num2)
}
}
doAdd(1) //2
doAdd(1, 2) // 4

这里需要注意的一点是,两个命名的参数和argumens对象一起使用。由于num1和arguments[0]的值形态,他们可以互换使用。

此外,arguments的值要永远与对应命名参数的值保持同步。

function doAdd(num1,num2){
arguments[1] = 0;
  alert(num1); // 1
alert(num2); // 0
alert(arguments[0]) // 1
   alert(arguments[1]) // 0
}
doAdd(1, 2)

函数重写了第二个参数num2,将第二个参数的值改为0,因为arguments对象的值会反应到对应的命名参数上,所以修改argumens[1]的值也就是修改了num2。

js---通过arguments来获取指定参数的更多相关文章

  1. 关于使用JS去除URL中的指定参数问题,js 对url进行某个参数的删除,并返回url

    在网页上找了半天,发现现在的资源实在是少的可怜,而前端尤甚.所以没办法,于是自己花了一些时间写了一个: 1 /** 2 * 删除URL中的指定参数 3 * @param {*} url 4 * @pa ...

  2. js函数arguments与获取css样式方法

    函数传参,当参数的个数不定时,可以使用arguments:表示实参集合 arguments.length=实参个数 获得css样式方法: getComputedStyle()方法---->得到的 ...

  3. JAVA从URL参数链接中获取指定参数的值

    import java.util.HashMap; import java.util.Map; /** * @author yvioo */ public class UrlUtils { /** * ...

  4. js 路径改变时获取url参数

    当我们在使用react或vue的router作路由跳转时,为了保持菜单与地址栏状态一致,我们可以使用window.onhashchange捕获#后面的变化 window.onhashchange = ...

  5. JS字符串截取(获取指定字符后面的所有字符内容)

    function getCaption(obj){     var index=obj.lastIndexOf("\-");     obj=obj.substring(index ...

  6. vue获取路由地址栏url里面的指定参数

    this.$route.query.gid     //gid是获取指定参数的名字

  7. js 获取 url 参数

    /** * 根据页面地址获取所有参数对象 * @return Object{} 返回所有参数 * ------------------------------ * 根据页面地址获取指定参数对象 * @ ...

  8. js获取url参数、图片转本地base64跨域问题

    获取url参数是经常需要用的一个方法,url上的参数可以让我们的程序执行更灵活. 图片转本地也是很实用的,因为海报合成通常只支持本地. 下面我们来看看这些功能的实现: 获取所有参数,采用split拆分 ...

  9. javascript获取URL参数和参数值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. Join 语句

    select * from books as A join (select * from Orders) as B on A.BookId = B.BookId select A.BookId,Aut ...

  2. mac 上执行 rm -rf /

    # 很可怕的指令,清空磁盘所有资料,千万不要用 sudo 尝试,吓的小心肝差掉跳出来 rm -rf / 无聊,想执行rm -rf /会怎样,想起没加sudo时对~/download执行提示权限不足,被 ...

  3. TCP协议的三次握手、四次挥手

    TCP三次握手 TCP的连接的建立需要发送三个包,一次称为三次握手(Three-way Handshake). 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 ...

  4. wget 批量下载网站目录下的文件

    执行如下命令就会自动下载 http://www.iyunwei.com/docs/ 下面的所有文件: wget -nd -r -l1 --no-parent http://www.iyunwei.co ...

  5. vue 中引入Jquery插件

    import $ from '../../static/js/jquery.min.js' window.jQuery = $; require('../../static/js/jquery.zoo ...

  6. appium的python异常处理

    from  appium import webdriver from selenium.common.exceptions import NoSuchElementException desired_ ...

  7. Golang - 异常处理

    目录 Golang - 异常处理 1. 抛异常和处理异常 2. 返回异常 Golang - 异常处理 1. 抛异常和处理异常 package main import "fmt" / ...

  8. 4.Spring注解+SpringMVC注解+MyBatis注解(动态sql)

    1.创建如图所示项目结构 2.在项目的

  9. 【习题 4-5 Uva1590】 IP Networks

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 假设从第i位开始有不一样的. 那么就把i+1..32位全都置0. 掩码的话类似.前i为全为1,后面32-i位全0. 尽量让后面的连续 ...

  10. mongodb--update高级用法

    配合update使用的函数 $set 修改某列的值 $unset 删除某个列 $rename 重命名某个列 $inc 增长某个列 $setOnInsert 当upsert为true时,并且发生了ins ...