js-arguements解析


在函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象 arguments[0],arguments.length


#arguments是什么?

答:

1: arguments是收到的实参副本,在词法分析中, 首先按形参形成AO的属性,值为undefined
当实参传来时, 再修改AO的相应属性。

2: 并把所有收到实参收集起来,放到一个arguments对象里,t(a,b,c){},调用时: t(1,2,3,4,5) 5个参数,此时 , AO属性只有a,bc,3个属性, arguments里有1,2,3,4,5, 所有的值,对于超出形参个数之外的实参, 可以通过arguments来获得。

3: arguments 的索引 从 0, 1,2,….递增,与实参逐个对应。

4: arguments.length 属性代表实参的个数。

5: arguments一定不是数组, 是长的比较像数组的一个对象,虽然也有length属性。

6: arguments每个函数都会有,因此,arguemnts只会在内部找自身的arguments,无法引用到外层的arguments

// 求圆形面积,矩形面积, 三角形面积
function area () {
    if(arguments.length == 1) {
        alert(3.14 * arguments[0] * arguments[0]);
    } else if(arguments.length == 2) {
        alert(arguments[0] * arguments[1]);
    } else if(arguments.length == 3) {
        alert(arguments[0] + arguments[1] + arguments[2]);
    } else {
        return null;
    }
}

area(10,20,30);

# arguements


文章作者: 大懒虫
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 大懒虫 !
 上一篇
【Redis学习笔记-01】NoSQL概述 【Redis学习笔记-01】NoSQL概述
Nosql概述 1、Nosql概述 90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够! 那个时候,更多的去使用静态网页 Html ~ 服务器根本没有太大的压力! 思考一下,这种情况下:整个网站的瓶颈是什么? 1、数
2020-06-01
下一篇 
jedis修改阿里云服务器配置 jedis修改阿里云服务器配置
首先去阿里云添加安全组 然后修改自己的redis配置文件 重启redis服务即可 redis-cli shutdown #关闭 redis-server /lazywormConif/redis.conf #启动 do
2020-02-07
  目录