JavaScript:函数隐含对象arguments/剩余参数. . .c/解构赋值

2023-12-25 11:44

本文主要是介绍JavaScript:函数隐含对象arguments/剩余参数. . .c/解构赋值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

除了this,在函数内部还存在着一个隐含的参数arguments

arguments 是一个类数组对象(伪数组)

调用函数时传递的所有实参,都被存储在arguments中

arguments[0] 表示的是第一个实参

arguments[1] 表示的是第二个实参

以此类推...

通过arguments即使不定义形参也可以使用实参

function fn(a, b) {// console.log('a =',a);// console.log('b =',b);/*除了this,在函数内部还存在着一个隐含的参数argumentsarguments 是一个类数组对象(伪数组)调用函数时传递的所有实参,都被存储在arguments中arguments[0] 表示的是第一个实参arguments[1] 表示的是第二个实参以此类推...通过arguments即使不定义形参也可以使用实参*/// console.log(arguments.length);console.log(arguments[2]);// console.log(Array.isArray(arguments));}// fn(123, 456, 789);// fn(123,456,'hello');// 创建一个函数,可以用来计算任意个数字的和function sum() {//创建一个变量,用来存储结果var result = 0;//遍历argumentsfor(var i=0; i<arguments.length; i++){result += arguments[i];}//返回结果return result;}var result = sum(1, 3, 10);console.log(result);// arguments 是用来存储实参的类数组对象// 它里边包含了一个属性callee,callee就表示当前正在调用的函数
function fn() {console.log(arguments.callee === fn);arguments.callee();}fn();

2:剩余参数. . .c :

定义形参时,可以在参数列表最后定义一个 ...rest 形式的参数

这种参数叫做剩余参数,所有的没有形参对应的实参都会保存到剩余参数中

剩余参数本身就是一个数组,专门用来存储剩余的参数

剩余参数必须是最后一个参数

function fn(a, b, ...c) {// console.log('a =',a);// console.log('b =',b);console.log(c);}// fn(1, 2, 3, 4, 11, 14);function sum(...args) {return args.reduce((a, b)=>a+b);}var result = sum(1,3,5,17);// console.log(result);

3解构赋值:

function fn(a, b, c) {console.log('a =',a);console.log('b =',b);console.log('c =',c);}var arr = [10, 20, 30];// 传递实参时,如果希望分别将数组中的元素作为实参传递,可以直接在数组前使用...// 这样数组的第一个元素会成为第一个参数,第二个元素会成为第二个参数,以此类推// fn(...arr);// fn(arr[0], arr[1], arr[2]);// 要将数组中的值赋值给指定的变量// var a = arr[0];// var b = arr[1];// var c = arr[2];arr = [10, 20, 30, 40, 50, 60, 70];// var [a,b,c] = arr;var a,b,c;[a,b,...c] = arr;// console.log(a, b, c);// 解构对象var obj = {name:'孙悟空', age:'18', gender:'男'};// var {name, age, gender} = obj;// var name, age, gender;// 解构对象时,如果不是以var开头,必须使用()把表达式括起来// ({name, age, gender} = obj);// console.log(name, age, gender);var {name, ...rest} = obj;console.log(name, rest);

欢迎关注我的原创文章:小伙伴们!我是一名热衷于前端开发的作者,致力于分享我的知识和经验,帮助其他学习前端的小伙伴们。在我的文章中,你将会找到大量关于前端开发的精彩内容。

学习前端技术是现代互联网时代中非常重要的一项技能。无论你是想成为一名专业的前端工程师,还是仅仅对前端开发感兴趣,我的文章将能为你提供宝贵的指导和知识。

在我的文章中,你将会学到如何使用HTML、CSS和JavaScript创建精美的网页。我将深入讲解每个语言的基础知识,并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者,我的文章都能够满足你的学习需求。

此外,我还会分享一些关于前端开发的最新动态和行业趋势。互联网技术在不断发展,新的框架和工具层出不穷。通过我的文章,你将会了解到最新的前端技术趋势,并了解如何应对这些变化。

我深知学习前端不易,因此我将尽力以简洁明了的方式解释复杂的概念,并提供一些易于理解的实例和案例。我希望我的文章能够帮助你更快地理解前端开发,并提升你的技能。

如果你想了解更多关于前端开发的内容,不妨关注我的原创文章。我会不定期更新,为你带来最新的前端技术和知识。感谢你的关注和支持,我们一起探讨交流技术共同进步,期待与你一同探索前端开发的奇妙世界!

这篇关于JavaScript:函数隐含对象arguments/剩余参数. . .c/解构赋值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/535406

相关文章

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推