anguments是一个对象,长得很像数组的对象,但不是数组,而是伪数组。

arguments的内容是函数运行时的实参列表

(function(d, e, f) {
console.log(arguments); //["hello","world","!","aa"]
console.log(arguments[3]); //aa
})('hello', 'world', '!','aa');

传进匿名函数的参数只有前三个,实际上却能从arguments里获取到第四个。

----------------------------------------------------分割线----------------------------------------------------

arguments的特点:

1、传进函数的实参本来只能通过形参传递,但是js里可以通过arguments传递

2、如果实参个数比形参要多,arguments仍然可以获取到,并且可以修改形参的值,修改形参数值的时候,形参也是做相应变化的。变化是双向的。

3、有2个常用属性,length获取长度,callee获取当前所在函数

(function(d, e, f) {
console.log(arguments); //["hello","world","!","aa"]
arguments[0]='china';
console.log(d); //["chia","world","!","aa"]
e='s';
console.log(arguments); //["china","s","!","aa"]
var length=arguments.length;
console.log(length); //4
console.log(arguments.callee); //答案在下面 详见:答一
})('hello', 'world', '!','aa');

答一:

 function (d, e, f) {
console.log(arguments);
arguments[0]='china';
console.log(d);
e='s';
console.log(arguments);
var length=arguments.length;
console.log(length);
console.log(arguments.callee);
}

----------------------------------------------------分割线----------------------------------------------------

使用callee计算1到n的和的函数

console.log((function(n){
if(n==1){
return 1;
}else{
return n+arguments.callee(n-1); //10+9+8+7+6+5+4+2+1=55
}
}(10)));

anguments的更多相关文章

  1. js中函数的一些理论知识

      函数的一些理论知识 1. 函数:                执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...

  2. 第六十四天 JS基础操作

    一.分支结构 1.if语句 if基础语句 if(条件表达式){ 代码块: } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通表达式 // 0.undefined ...

  3. Python-JS基础(基础结构~函数)

    程序本质上分为三大结构: 顺序结构.分支结构.循环结构JavaScript中的程序结构也是这样,下面我们来分别介绍JS中的三种基本程序结构:我们上篇博客中介绍到的使用逻辑运算符&&实现 ...

  4. day51

    JS基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通表达式 // 0 ...

  5. JavaScript常用操作,常用类

    算术运算符 重点关注 算数,赋值,逻辑运算符,三目运算符 <!DOCTYPE html> <html> <head> <meta charset=" ...

  6. 强悍的javascript手势库

    /** * Toucher * git:https://github.com/cometwo/Toucher-1 */ "use strict"; (function (root, ...

  7. JavaScript 基础语法

    1 谈谈 JavaScript JavaScript,通常会简称为'JS', 是一种浏览器脚本语言 1.1 JavaScript 编程语言特点 JavaScript是一种脚本编程语言 JavaScri ...

  8. javascript --- 构造器借用

    接下来我们在看一种继承的实现.这需要再次利用构造器函数入手,这回不直接使用对象了.由于在这种继承模式中,子对象构造器可以通过call()和apply()方法来调用父对象的构造器.因而可以被称作构造器盗 ...

  9. 前端(十二)—— JavaScript基础操作:if语句、for循环、while循环、for...in、for...of、异常处理、函数、事件、JS选择器、JS操作页面样式

    JavaScript基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通 ...

随机推荐

  1. Android特效专辑(三)——自定义不一样的Toast

    Android特效专辑(三)--自定义不一样的Toast 大家都知道,Android的控件有时候很难满足我们的需求,所以我们需要自定义View.自定义的方式很多,有继承原生控件也有直接自定义View的 ...

  2. 采用UltraISO制作U盘启动盘

    采用UltraISO制作U盘启动盘 打开UltralSO,选择"文件"--->"打开",如下图: 图1 打开WIN7操作系统的ISO文件,如下图: 图2 ...

  3. obj-c编程10:Foundation库中类的使用(6)[线程和操作队列]

    任何语言都不能避而不谈线程这个东东,虽然他是和平台相关的鸟,虽说unix哲学比较讨厌线程的说...线程不是万能灵药,但有些场合还是需要的.谈到线程就不得不考虑同步和死锁问题,见如下代码: #impor ...

  4. C#中使用双缓冲来避免绘制图像过程中闪烁

    自己所做项目中,在显示医学图像的界面中,当鼠标拖动图像时,不断刷新从后台获取新的图像,而整个过程就很诡异,一直闪个不停. 找到的一个可行方法是:在用户控件的构造函数中加入以下代码: SetStyle( ...

  5. Java IO学习--(三)通道

    Java IO中的管道为运行在同一个JVM中的两个线程提供了通信的能力.所以管道也可以作为数据源以及目标媒介. 你不能利用管道与不同的JVM中的线程通信(不同的进程).在概念上,Java的管道不同于U ...

  6. python3 数据科学基础

    第一章 1.Anaconda(最著名的python数据科学平台) 下面小伙伴们咱们来初初识下Anaconda吧 What is Anaconda???? 回答: (1).科学计算的平台 (2).有很多 ...

  7. windows环境下zookeeper安装和使用

    一.简介        zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一 ...

  8. python爬虫错误总结

    这几天突然想到学习爬虫,于是就从python开始,python教程瞄了两眼,就去网上找别人写的爬虫(爬音乐网站的歌曲) 磕磕绊绊中渐渐地熟悉了python中常用的库和模块. 1.python 2.x( ...

  9. JVM学习记录-垃圾回收算法

    简述 因为各个平台的虚拟机的垃圾收集器的实现各有不同,所以只介绍几个常见的垃圾收集算法. JVM中常见的垃圾收集算法有以下四种: 标记-清除算法(Mark-Sweep). 复制算法(Copying). ...

  10. Linux(Redhat)安装Redis

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.(百度百科 0.0) 下载:http://www.redis. ...