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

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2