JavaScript中arguments的使用方法详解


Posted in Javascript onDecember 20, 2020

前言

js这是一门弱语言,不像其他语言如c,java等,有严格的规范,

所以现在也流传着一种说法,js本来就不是一种语言;

说回arguments,它是js中函数内置的一个对象,而执行函数方法的实参中值都存储在arguments中;

要想获取到这些实参,就需要像数组一样,用下标/索引来定位到每个值上面,但是又不能说它是一个数组,因为它里面还有其他的属性,如callee;

并且不能对它使用shift、push、join等方法。而没有传递值的命名参数将会被自动赋予undefined;

如下图:

JavaScript中arguments的使用方法详解

(如果要获取到其他的不是实参的属性,就需要用具体的属性名了;)

arguments实例一:

计算任意数值的和

<script>
 function sum(){
 var result = 0;
 
for(var i = 0;i<arguments.length;i++){
 

result+=arguments[i];
 
}
 
return result;
 }
 window.onload = function(){
 
alert(sum(1,2,3,4,5,6,7,9));
 }
 </script>

实例二:

求给定的任意值中的最大值

<script>
 function Max(){
 var maxValue = arguments[0];
 for(var i=1; i<arguments.length; i++){
 if(maxValue < arguments[i]){
 maxValue = arguments[i];
 }
 }
 console.log(arguments);
 return maxValue;
 }
 
 console.log(Max(1,23,0,-1000,100,5,54)); // 100

 </script>

callee的作用是返回正在被执行的函数对象,只能在相关的函数 执行时才能使用;

可以用来实行函数的递归;

<script>

 function factorial(n){
  if (n <= 0){
 return 1;
 } else{
 return n * arguments.callee(n-1);
 // return n*factorial(n-1);函数本身的递归
 } 
 }
 alert(factorial(5)); // 120
</script>

总结

到此这篇关于JavaScript中arguments使用的文章就介绍到这了,更多相关JS中arguments使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
使用Jquery打造最佳用户体验的登录页面的实现代码
Jul 08 Javascript
js获取单选框或复选框值及操作
Dec 18 Javascript
javascipt基础内容--需要注意的细节
Apr 10 Javascript
Asp.Net alert弹出提示信息的几种方法总结
Jan 29 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
Feb 19 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
May 08 Javascript
jQuery使用$.each遍历json数组的简单实现方法
Apr 18 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 Javascript
vue2 设置router-view默认路径的实例
Sep 20 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
Nov 11 Javascript
原生js实现自定义滚动条
Jan 20 Javascript
vue 在单页面应用里使用二级套嵌路由
Dec 19 #Vue.js
vue中如何添加百度统计代码
Dec 19 #Vue.js
vue 导航守卫和axios拦截器有哪些区别
Dec 19 #Vue.js
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
Dec 19 #Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 #Vue.js
Vue——前端生成二维码的示例
Dec 19 #Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 #Vue.js
You might like
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
2020/04/27 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
Python爬取成语接龙类网站
2018/10/19 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
简单了解python列表和元组的区别
2020/05/14 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
英国电子专家:maplin
2019/09/04 全球购物
ORACLE第二个十问
2013/12/14 面试题
《雕塑之美》教学反思
2014/04/24 职场文书
神农溪导游词
2015/02/11 职场文书
投诉书格式范本
2015/07/02 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
Win2008系统搭建DHCP服务器
2022/06/25 Servers