web学习笔记(十八)

目录

1.函数的参数

1.1显式参数

1.2隐式参数

(1)this

(2)Arguments

1.3伪数组转换为真数组

2.函数补充知识点

2.1函数可以调用另一个函数

2.2闭包函数


1.函数的参数

1.1显式参数

  • 显式参数就是我们自定义的参数。
  • JavaScript函数定义显式参数时没有指定数据类型。

1.2隐式参数

系统给定的参数叫隐式参数,隐式参数有两个this和Arguments。

(1)this

this代表当前执行代码的对象。它在不同的场景下指向不同的对象。

  • 在全局作用域中,this指向全局对象(在浏览器中是Window对象)。
  • 在函数中,this的指向取决于函数的调用方式。
    1. 如果函数作为对象的方法调用,this指向调用该方法的对象。
    2. 如果函数作为普通函数调用,this指向全局对象(在浏览器中是Window对象)。
    3. 如果函数使用了箭头函数语法,this继承自外层作用域的this,与普通函数不同。
  • 在构造函数中,this指向由该构造函数创建的新对象。
  • 在事件处理函数中,this指向触发事件的元素。
  • 在使用call、apply或bind方法调用函数时,this可以通过第一个参数来指定。

(2)Arguments

arguments 实际上它是当前函数的一个内置对象。所有函数都内置了一个 arguments 对象,arguments 对象中存储了传递的所有实参。

  • Arguments是用来封装实参的对象。
  • JavaScript函数对隐式参数没有进行类型检测。
  • JavaScript函数对隐式函数的个数没有进行检测。
  • Arguments是伪数组,不具有数组的push,pop等方法,但可以进行遍历,可以通过索引号进行取值。
     function show(a,b){console.log(arguments instanceof Array);//false//instanceof检测出arguments不是一个数组console.log(arguments[3]);//6// arguments可以通过序列号来进行取值。for(var i=0;i<arguments.length;i++){console.log(i);//可以进行数组的遍历}}show(1,2,4,6,7,8)

  • Arguments是函数的隐式参数,它本身也是一个对象。
     <script>function show(a,b){console.log(a,b);//1 2console.log(arguments);
    //Arguments(6) [1, 2, 4, 6, 7, 8, callee: ƒ, Symbol(Symbol.iterator): ƒ]// arguments可以以一种类似数组(但不是数组)的方式拿到所有的实参。}show(1,2,4,6,7,8)//传参时,实参个数大于形参个数</script>

  • Arguments有length属性,即使没有形参,也能取出来实参的值。
  • Arguments有callee属性,这个属性指向的是函数自己,控制台输出的话会将函数打印出来。
     function show1(){console.log(arguments.callee);/* ƒ show1(){console.log(arguments.callee);} */}show1();

    1.3伪数组转换为真数组

方法一

  function show1(){console.log(arguments);//伪数组var arr=[];// 定义新数组for(var i=0;i<arguments.length;i++){arr[i]=arguments[i];// 通过循环将arguments里面的每一项元素都复制到新数组中去。}console.log(arr);}show1(1,2,3,4,5,6,677,7,7)

方法二利用展开运算符 ...

  function show2(){var arr=[...arguments];console.log(arguments);console.log(arr); }show2(1,2,3,4,5,6,677,7,7);

方法三

 function show3(){//       数组  原型     分割  呼叫var arr= Array.prototype.slice.call(arguments);console.log(arguments);console.log(arr);}show3(1,2,3,4,5,6,677,7,7)

2.函数补充知识点

2.1函数可以调用另一个函数

因为每个函数都是一个独立的代码块,用于完成某个功能,所以经常会用到函数相互调用的情况。

    function fn1() {console.log(111);console.log('函数一');fn2();}function fn2() {console.log(222);console.log('函数二');}fn1();/* 111函数一222函数二*/

2.2闭包函数

闭包函数是指在一个函数内部定义的函数,这个内部函数可以访问外部函数的变量和参数,即使外部函数已经执行完毕,内部函数仍然可以访问和操作外部函数的变量。相当于在函数内部写入了一个函数。

    function outerFunction() {var x = 10;function innerFunction() {console.log(x*2); // 打印外部函数的变量x}return innerFunction;}var inner = outerFunction();inner(); // 输出20

缺点:由于闭包会使用函数中的变量一直被保存在内存中,内存消耗很大,所以闭包的滥用可能会降代程序的处理速度,造成内存消耗的问题(内存泄露)

优点:使用闭包函数可以避免全局变量污染 延伸了变量的作用范围

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

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

相关文章

2024美赛数学建模B题思路源码

赛题目的 赛题目的&#xff1a; 问题描述&#xff1a; 解题的关键&#xff1a; 问题一. 问题分析 问题解答 问题二. 问题分析 问题解答 问题三. 问题分析 问题解答 问题四. 问题分析 问题解答 问题五. 问题分析 问题解答

云计算基础(云计算概述)

目录 一、云计算概述 1.1 云计算的概念 1.1.1 云计算解决的问题 1.1.2 云计算的概念 1.1.3 云计算的组成 1.2 云计算主要特征 1.2.1 按需自助服务 1.2.2 泛在接入 1.2.3 资源池化 1.2.4 快速伸缩性 1.2.5 服务可度量 1.3 云计算服务模式 1.3.1 软件即服务(Softwar…

老师罚学生钱违法吗

在教师岗位上耕耘了近十年&#xff0c;我遇到过无数的学生和无数的教学情境。其中&#xff0c;有一个问题始终困扰着我&#xff1a;在某些情况下&#xff0c;我能否用“罚钱”的方式来纠正学生的行为&#xff1f;当然&#xff0c;这还涉及到许多复杂的因素&#xff1a;学校的规…

Pandas快问快答1-15题

如果你是一名使用python进行过数据处理的程序员&#xff0c;那你对Pandas必然不陌生。pandas是一个开源的第三方Python库&#xff0c;旨在提供快速、灵活和富有表现力的数据结构&#xff0c;以便能够简单、直观地处理关系型和标记型数据。它的名字来源于面板数据&#xff08;Pa…

Linux项目的挂起与结束

后台挂起 nohup java -jar java_gobang.jar & 结束项目 先查询pid ps -ef | grep java_gobang 结束&#xff1a; kill -9 23183

2.2作业

1、编写C程序一般需经过的几个步骤依次是&#xff08; A &#xff09; A. 编辑、调试、编译、连接 B. 编辑、编译、连接、运行 C. 编译、调试、编辑、连接 D. 编译、编辑、连接、运行 2、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起&#xff0c;形成一个…

Ruoyi-Cloud-Plus_Nacos配置服务漏洞CVE-2021-29441_官方解决方法以及_修改源码解决---SpringCloud工作笔记199

CVE-2021-29441 这个漏洞是Nacos的,通过使用postman,直接访问接口: 就可以直接添加nacos的用户 Nacos是Alibaba的一个动态服务发现、配置和服务管理平台。攻击者通过添加Nacos-Server的User-Agent头部将可绕过(nacos.core.auth.enabled=true)鉴权认证,从而进行API操作。 …

工业智能网关构建智慧污水处理远程监测及管理

污水处理厂是为了处理生活污水和工业废水而建立的设施。为了监测和控制污水处理过程&#xff0c;现代污水处理厂采用了智能工业网关物联网技术。智慧污水系统能够通过工业网关远程监测厂内各个环节的运行情况&#xff0c;提高处理效率和管理水平。 智能工业网关能够将不同设备…

OpenAI Gym 中级教程——强化学习实践项目

Python OpenAI Gym 中级教程&#xff1a;强化学习实践项目 在本篇博客中&#xff0c;我们将通过一个实际项目来演示如何在 OpenAI Gym 中应用强化学习算法。我们选择一个简单而经典的问题&#xff1a;CartPole&#xff0c;这是一个控制小车平衡杆的问题。我们将使用深度 Q 网络…

C语言第十六弹---操作符(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 操作符 1、下标访问[]、函数调用() 1.1、[ ] 下标引用操作符 1.2、函数调用操作符 2、结构成员访问操作符 2.1、结构体 2.1.1、结构的声明 2.1.2、结构体变…

wordpress怎么做产品展示站?推荐使用MOK主题和ent主题

大多数WordPress站点都是个人博客网站&#xff0c;主要以文章性质的图文为主。不过部分站长想要用WordPress搭建一个产品展示站&#xff0c;应该怎么做呢&#xff1f; 其实&#xff0c;WordPress可以用来建立各种各样的博客网站&#xff0c;包括个人博客、企业网站、商城、影视…

Node需要了解的知识

一:Node能执行javascript的原因。 浏览器之所以能执行Javascript代码&#xff0c;因为内部含有v8引擎。Node.js基于v8引擎封装&#xff0c;因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象&#xff0c;BOM是浏览器对象。但是node中提供了c…

点击侧边栏菜单跳转到main 页面

.home.vue页面 需要在 <el-main>标签下增加第一个路由占位符 因为登录的欢迎页面 和点击下的子菜单 会在同一个页面 因此需要判断 获取路由路径 如果是/home 路径 则显示欢迎语(Devops管理系统) 如果不是则是路由占位符 home.vue 中 <el-main><div c…

vue全家桶之路由管理Vue-Router

一、前端路由的发展历程 1.认识前端路由 路由其实是网络工程中的一个术语&#xff1a; 在架构一个网络时&#xff0c;非常重要的两个设备就是路由器和交换机。当然&#xff0c;目前在我们生活中路由器也是越来越被大家所熟知&#xff0c;因为我们生活中都会用到路由器&#…

(007)Gradle 找不到符号

问题 明明类的定义存在&#xff0c;gradle编译时&#xff0c;去报找不到符号&#xff1a; 解决 强制刷新gradle缓存&#xff1a;&#xff08;C:\Users\Administrator.gradle\caches&#xff09; ./gradlew build --refresh-dependencies -Penvtestout

Error: Projects must list all files or use an ‘include‘ pattern.

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

Java安装环境(MacOS)JDK+Maven+Idea插件+nvm等

Java安装环境(MacOS)JDKMavenIdea插件nvm等 背景&#xff1a;新机安装开发环境发现需要找很多文章&#xff0c;&#xff0c;&#xff0c;&#xff0c;这里一篇文章安装所有环境 文章目录 Java安装环境(MacOS)JDKMavenIdea插件nvm等一、安装JDK①&#xff1a;下载②&#xff1a;…

【全网最全】2024美赛ABCDEF题思路模型全解(后续会更新)

欲获取更多资料&#xff0c;一定要点击这里并关注文末的公众号&#xff01;&#xff01;&#xff01; 最新更新&#xff1a;我们团队不仅在第一时间更新了24美赛全题目的深度翻译和深入分析&#xff0c;经过爆肝奋战&#xff0c;我们在第一时间给出了ABCDEF全题目的完整建模过程…

《Nature Physics》:时间是可逆的

在物理学意义上&#xff0c;时间被视为一个维度。它表示一种连续的过程&#xff0c;从过去流向未来&#xff0c;与空间共同构成了四维时空。因此&#xff0c;时间是标注事件发生瞬间及持续过程的基本物理量。与宏观物质世界关联的度量时间常用年、世纪、光年等&#xff0c;与微…

ssl数字证书是什么

SSL证书是一种数字证书&#xff0c;用于在网络传输中提供加密和身份验证功能&#xff0c;从而保护数据的安全性和完整性。正规的SSL证书大多是由由权威的证书颁发机构&#xff08;CA&#xff09;颁发的&#xff0c;例如Certum、Digicert、Sectigo等&#xff0c;它们颁发的SSL数…