arguments 是函数运行时的实参列表(对象),每个函数都有自己的 arguments,但不往外层函数寻找 arguments 的相关属性,即不行成链(只有 OA 形成作用域链)。

例1

<script>
(function(d, e, f){console.log(arguments);console.log(typeof arguments);
})('javascript','programming','!');
</script>

console 中输出

["javascript", "programming", "!"]
object

例2 arguments 收集了所有的实参,即使没有相对应的形参

<script>
(function(d, e, f){console.log(arguments);
})('javascript','programming','!','node');
</script>

console 中输出

 ["javascript", "programming", "!", "node"]

当一个函数运行的时候,函数内部能引用的变量有 ① AO ② arguments ③ this

例3 形参与对应的 arguments 单元是相互映射的

<script>
(function(d, e, f){console.log(arguments[0]);arguments[0] = 'backbone';console.log(d);
})('javascript','programming','!','node');
</script>

console 中输出

javascript
backbone

例4 arguments 在函数运行时获取实参的个数

<script>
(function(d, e, f){console.log(arguments.length);
})('javascript','programming','!');
</script>

console 中输出:3

【arguments.callee 属性】当前运行的函数

例5

<script>
(function(d, e, f){console.log(arguments.callee);
})('javascript','programming','!');
</script>

console 输出:

 function (d, e, f){console.log(arguments.callee);
}

例6

使用递归求和

<script>
function t(n){if(n<=1){return n;}else{return n + t(n-1);}
}
console.log(t(100));
</script>

输出:5050

现在使用匿名函数完成递归

<script>
console.log((function (n){if(n<=1){return n;}else{return n + arguments.callee(n-1);}})(100)
);
</script>

输出:5050

Javascript 笔记与总结(1-3)arguments相关推荐

  1. 【JavaScript笔记 · 基础篇(五)】Array全家桶(引用数据类型中的数组 / Array对象 / Array.prototype)

    文章目录 一. 引用数据类型中的数组 1.1 概述 1.2 初始化 1.2.1 字面量 1.2.2 构造函数模式 1.3 访问 1.4 length属性 1.5 数组遍历 1.6 类数组对象 1.6. ...

  2. 狂神Javascript笔记

    学习狂神JavaScript所记录的笔记 Javascript笔记 一.前端核心分析 1.1.概述 Soc原则:关注点分离原则 Vue 的核心库只关注视图层,方便与第三方库或既有项目整合. HTML ...

  3. JavaScript笔记(狂神说)

    JavaScript笔记(狂神说) 本文章根据b站狂神说javascript视频教程整理 视频链接:https://www.bilibili.com/video/BV1JJ41177di?from=s ...

  4. JavaScript笔记(一)

    JavaScript笔记(一) 1 JavaScript简介 JavaScript,就是我们通常所说的JS,是一种嵌入到HTML页面中的脚本语言,由浏览器一边解释一边执行. 我们在"HTML ...

  5. JavaScript 笔记.md

    JavaScript 笔记 新建 模板 小书匠 一.JavaScript 历史由来 1.布兰登 艾奇 1995年在网景公司 发明的JavaScript. 2.2003年之前,JavaScript被认为 ...

  6. JavaScript 笔记

    学习笔记 部分转载自网络 #目录 [TOC] JavaScript 笔记 JavaScript负责页面中的的行为. 它是一门运行在浏览器端的脚本语言. JS的编写的位置 1.可以编写到标签的指定属性中 ...

  7. javascript笔记:深入分析javascript里对象的创建(上)续篇

    今天回来一看我的博客居然有这么多人推荐真是开心极了,看来大家对我的研究有了认可,写博客的动力越来越大了,而且我发现写javascript在博客园里比较受欢迎,写java的受众似乎少多了,可能博客园里j ...

  8. JavaScript 笔记Day1

    <JavaScript 笔记> JavaScript 是属于网络的脚本语言! JavaScript 是世界上最流行的编程语言.这门语言可用于 HTML 和 web,更可广泛用于服务器.PC ...

  9. JavaScript笔记整理

    JavaScript笔记整理 这段时间没有之前花在学习上的时间多了 目前进度还停留在JavaScript和D3.js(这个目前只找到了教程) 主要原因是因为决定自己找单位实习,到了今天26号才有了眉目 ...

  10. [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

    函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...

最新文章

  1. ceph 部署单机集群
  2. POJ 3046 Ant Counting(递推,和号优化)
  3. mac apache 和 nginx ssl 配置自签名的SSL
  4. rest-framework 分页器
  5. java system.out.read_求教Java高手,关于输入流的read的问题,为什么while循环体里面的两个System.out.println没有打印出来?...
  6. 小学生在家自学python_小学生都能学会的python(函数)
  7. 关于placement new 和 placement delete的重载,以及basic_string重载new()实例
  8. 6818 开发板 配置 ubuntu 桌面环境 与 ROS
  9. win11适合玩游戏吗 Windows11打游戏怎么样
  10. 为什么领导们总是劝大家不要只盯着工资?
  11. 感知机学习算法的原始形式
  12. 移动通信原理B-------课后作业1
  13. OpenGL学习笔记:GLAD和第一个窗口
  14. 如何部署在线团队协作系统kooteam(在线团队协作工具)
  15. 约瑟夫环(数三退一)
  16. 5、使用bean的scop属性来配置bean的作用域
  17. SAR 三点回波模拟 正侧视RD算法(经典好用)
  18. 数字逻辑基础实验二—时序逻辑电路的设计
  19. Gboard键盘词库导入方法
  20. 成功_专业_社交_意识

热门文章

  1. wubi for ubuntu 9.04 无法运行
  2. 学习笔记:自己编译安装OpenCV+测试opencv安装是否成功
  3. BZOJ4519 CQOI2016不同的最小割(最小割+分治)
  4. poj 3261 Milk Patterns
  5. MVC保存二进制到数据库,并显示文件的方法(图片显示)
  6. 什么是闭包?如何理解及使用闭包?
  7. d3 + geojson in node
  8. SCWS分词扩展在UNIX/LINUX下的安装方法
  9. Graphics samples2
  10. 2014-12-02-2107-Java-UML