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创建精美的网页。我将深入讲解每个语言的基础知识,并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者,我的文章都能够满足你的学习需求。

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2022年全球运维大会(GOPS深圳站)-核心PPT资料下载

一、峰会简介 GOPS 主要面向运维行业的中高端技术人员&#xff0c;包括运维、开发、测试、架构师等群体。目的在于帮助IT技术从业者系统学习了解相关知识体系&#xff0c;让创新技术推动社会进步。您将会看到国内外知名企业的相关技术案例&#xff0c;也能与国内顶尖的技术专家…

【数据结构】链式家族的成员——循环链表与静态链表

循环链表与静态链表 导言一、循环链表1.1 循环单链表1.2 循环双链表 二、静态链表2.1 静态链表的创建2.2 静态链表的初始化2.3 小结 结语 导言 大家好&#xff01;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 经过前面的介绍&#xff0c;相信大家对链式家族的…

软件测试/测试开发丨Mac Appium环境搭建

Mac 上 Appium 环境搭建 安装 nodejs 与 npm 安装方式与 windows 类似 &#xff0c;官网下载对应的 mac 版本的安装包&#xff0c;双击即可安装&#xff0c;无须配置环境变量。官方下载地址&#xff1a;https://nodejs.org/en/download/ 安装 appium Appium 分为两个版本&a…

【Transformer】深入理解Transformer模型1——初步认识了解

前言 Transformer模型出自论文&#xff1a;《Attention is All You Need》 2017年 近年来&#xff0c;在自然语言处理领域和图像处理领域&#xff0c;Transformer模型都受到了极为广泛的关注&#xff0c;很多模型中都用到了Transformer或者是Transformer模型的变体&#xff0…

ElasticSearch--基本操作

ElasticSearch 完成ES安装 http://101.42.93.208:5601/app/dev_tools#/console 库的操作 创建索引库 请求方式&#xff1a;PUT 请求路径&#xff1a;/索引库名&#xff0c;可以自定义 请求参数&#xff1a;mapping映射 PUT /test {"mappings": {"propertie…

计算机硬件 4.3显示器

第三节 显示器 一、基本概念 1.定义&#xff1a;将电信号转换为可以直接看到的图像的最基本输出设备。 2.分类&#xff1a;按显示色彩分&#xff1a;单色显示器、彩色显示器。 按显示原理分&#xff1a;CRT显示器、LCD显示器、LED显示器、OLED显示器。 3.原理结构&#xff…

【Oracle】 Oracle Sequence 性能优化

Sequence是很简单的&#xff0c;如果最大程度利用默认值的话&#xff0c;我们只需要定义sequence对象的名字即可。在序列Sequence对象的定义中&#xff0c;Cache是一个可选择的参数。默认的Sequence对象是有cache选项的&#xff0c;默认取值为20。这个默认值对于大多数情况下都…

云原生|kubernetes|kubernetes资源备份和集群迁移神器velero的部署和使用

前言&#xff1a; kubernetes集群需要灾备吗&#xff1f;kubernetes需要迁移吗&#xff1f; 答案肯定是需要的 那么&#xff0c;如何做kubernetes灾备和迁移呢&#xff1f;当然了&#xff0c;有很多的方法&#xff0c;例如&#xff0c;自己编写shell脚本&#xff0c;或者使用…

2023年江苏省职业院校技能大赛高职组“软件测试”赛项接口测试答案报告(含术语)

2023年江苏省职业院校技能大赛高职组“软件测试”赛项接口测试答案报告 接口测试要求: 1、执行接口测试 本部分按照软件接口测试文档要求,执行接口测试;使用接口测试工具PostMan,编写脚本、配置参数、执行接口测试并且截图。截图需粘贴在接口测试总结报告中。接口测试具体…

06-C++ 模板

模板、类型转换 模板 1. 简介 一种用于实现 通用编程 的机制。 将 数据类型 可以作为参数进行传递 。 通过使用模板&#xff0c;我们可以编写可复用的代码&#xff0c;可以适用于多种数据类型。 c模板的语法使用尖括号 < > 来表示泛型类型&#xff0c;并使用关键字…

啊?这也算事务?!

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

Java中的Optional类使用技巧

在Java中&#xff0c;Optional 是一个可以为null的容器对象。如果值存在则isPresent()方法返回true&#xff0c;调用get()方法会返回该对象。 使用Optional可以有效地防止NullPointerException。 下面是一些使用Optional的技巧&#xff1a; 创建Optional对象&#xff1a; Opt…

php-m和phpinfo之间不一致的问题的可能原因和解决办法

1.不同的 PHP配置文件: php -m 和 phpinfo 可能会使用不同的 PHP 配置文件。确保它们都使用相同的配置文件。你可以在命令行中使用 php --ini 来查找当前使用的配置文件位置&#xff0c;并在 phpinfo 中查看 Loaded Configuration File 来确保它们相同。 2.不同的 PHP 版本:确…

uni-app封装表格组件

组件代码&#xff1a; <template><view><uni-table class"tableBox" border stripe emptyText""><!-- 表头行 --><uni-tr class"tableTr"><uni-th :sortable"item.sortable" :class"item.sort…

【人工智能新闻】2023年人工智能热门新闻

欢迎收看我们的特别版时事通讯&#xff0c;重点报道“2023年人工智能热门新闻”今年是人工智能领域的里程碑&#xff0c;展示了重塑技术和我们日常生活的突破性进步和创新。从大型企业投资到革命性的技术发布&#xff0c;2023年的每个月都带来了非凡的成就。 加入我们&#xf…

什么是CAS,什么是AQS,两者到底有什么区别

首发2023-12-29 12:41yuan人生 CAS和AQS在java多线程编程中经常会涉及到&#xff0c;在许多面试的时候也会经常问到。但很多同学却不了解他们&#xff0c;那我们来一起看看什么是CAS&#xff0c;什么是AQS&#xff0c;两者到底有什么区别。 详见&#xff1a;https://www.touti…

用 Python 提取某一个公众号下的所有文章

当我们想要提取某一个公众号下的所有文章时&#xff0c;我们可以借助微信公众平台的开放接口&#xff0c;通过Python编写一个爬虫程序来实现。下面是一个示例代码&#xff0c;以及如何将其转化为一篇详细的微信公众号推文文章。 1. 导入所需库 首先&#xff0c;我们需要导入所…

LLM提示词工程学习_Day01

LLM提示词工程学习_Day01 安装学习环境基础Conda环境安装安装Python安装所需的包Jupyter Notebook 安装获取OpenAI API KEY&#xff0c;并写入工程目录里的.env文件进入Jupyter&#xff0c;先跑一段代码 安装学习环境 基础Conda环境安装 conda环境安装&#xff0c;miniconda也…

序列化机制以及应用场景

当谈到 Java 编程语言时&#xff0c;序列化机制是一个重要而又常见的概念。它允许对象在网络上传输或者保存到持久存储设备中。Java 提供了一个内建的序列化机制&#xff0c;它可以将对象转换为字节流&#xff0c;这个过程称为序列化&#xff0c;同时也能从字节流中重新构建对象…

go-carbon v2.3.1 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库

carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库&#xff0c;支持链式调用。 目前已被 awesome-go 收录&#xff0c;如果您觉得不错&#xff0c;请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安装使用 Golang 版本大于…