17JS08——函数

news2024/12/29 7:55:05

函数

  • 一、函数的概念
  • 二、函数的使用
    • 2.1 声明函数
    • 2.2 调用函数
    • 2.3 函数的封装
  • 三、函数的参数
    • 3.1 形参和实参
    • 3.2 形参和实参个数不匹配问题
    • 3.3 小结
  • 四、函数的返回值
    • 4.1 return语句
    • 4.2 return终止函数
    • 4.3 break、continue、return的区别
    • 4.4 案例
  • 五、arguments的使用
    • 案例1:利用函数求任意个数的最大值
  • 六、函数案例
    • 案例1:翻转任意数组
    • 案例2:利用函数封装面对数组排序--冒泡排序
    • 案例3:利用函数判断闰年
    • 案例4:用户输入年份,输出当前年份2月份的天数
  • 七、函数的两种声明方式

目标:
1、函数的概念
2、函数的使用
3、函数的参数
4、函数的返回值
5、arguments的使用
6、函数案例
7、函数的两种声明方式

一、函数的概念

在JS里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。
虽然for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用JS中的函数。
函数: 就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。

二、函数的使用

函数在使用时分为两步:声明函数和调用函数

2.1 声明函数

在这里插入图片描述
· function 声明函数的关键字,全部小写
· 函数是做某件事情,函数名一般是动词

2.2 调用函数

在这里插入图片描述
· 函数不调用自己不执行
· 调用函数的时候千万不要忘记加小括号

2.3 函数的封装

函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口
简单理解:封装类似于将电脑配件整合组装到机箱中(类似快递打包)

三、函数的参数

3.1 形参和实参

在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,而在调用该函数时,同样也需要传递相应的参数,这些参数被称为实参。
在这里插入图片描述
函数的参数可以有,也可以没有,个数不限。
参数的作用: 在函数内部某些值不能固定,我们可以通过调用函数时传递不同的值进去。
在这里插入图片描述

3.2 形参和实参个数不匹配问题

在这里插入图片描述
注意:在JS中,形参的默认值是undefined

3.3 小结

· 函数可以带参数也可以不带参数
· 声明函数的时候,函数名括号里面的是形参,形参的默认值为undefined
· 调用函数的时候,函数名括号里面的是实参
· 多个参数中间用逗号分隔
· 形参的个数可以和实参个数不匹配,但是结果不可预计,我们尽量要匹配

四、函数的返回值

4.1 return语句

函数将值返回给调用者,此时通过使用return语句就可以实现
在这里插入图片描述
· 函数只是实现某种功能,最终的结果需要返回给函数的调用者:函数名(),通过return实现
· 只要函数遇到return就把后面的结果返回给函数的调用者,函数名()=return后面的结果

4.2 return终止函数

1、return语句之后的代码不被执行
2、返回的结果是最后一个值,即2
在这里插入图片描述
3、可以利用数组,输出多个值
在这里插入图片描述
4、函数如果有return则返回的是return后面的值,函数没有return返回undefined
在这里插入图片描述

4.3 break、continue、return的区别

· break:结束当前的循环体(如forwhile)
· continue:跳出本次循环,继续执行下次循环(如forwhile)
· return:不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前的函数体内的代码

4.4 案例

1、利用函数求两个数的最大值
在这里插入图片描述
在我们的实际开发中,经常使用一个变量来接收函数的返回结果,使用更简单。
在这里插入图片描述

五、arguments的使用

当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参

arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点:
· 具有length属性
· 按索引方式储存数据
· 不具有数组的push,pop等方法
在这里插入图片描述

输出结果:
在这里插入图片描述
如何打印出arguments中的所有元素:
在这里插入图片描述

输出结果:在这里插入图片描述

案例1:利用函数求任意个数的最大值

在这里插入图片描述
输出结果:
在这里插入图片描述

六、函数案例

案例1:翻转任意数组

案例分析:
在这里插入图片描述

代码:
在这里插入图片描述

案例2:利用函数封装面对数组排序–冒泡排序

在这里插入图片描述

案例3:利用函数判断闰年

在这里插入图片描述

案例4:用户输入年份,输出当前年份2月份的天数

函数可以互相调用

在这里插入图片描述

七、函数的两种声明方式

在这里插入图片描述
(1)fun是变量名,不是函数名;
(2)函数表达式声明方式跟声明变量差不多,只不过变量里面存的是值而函数表达式里面存的是函数;
(3)表达式也可以进行传递参数。

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

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

相关文章

案例30:基于Springboot酒店管理系统开题报告设计

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

Java-多线程解析1

一、线程的描述: 1、线程是一个应用程序进程中不同的执行路径比例如:一个WEB服务器,能够为多个用户同时提供请求服务;而 -> 进程是操作系统中正在执行的不同的应用程序,比如:我们可以同时打开系统的word和游戏 2、多…

Tomcat优化及Nginx、tomcat动静分离配置

Tomcat优化及Nginx、tomcat动静分离配置 一、Tomcat优化1、操作系统优化(内核参数优化)2、Tomacat配置文件优化3、Java虚拟机(JVM)调优 二、Nginx、tomcat动静分离配置(七层代理)三、四层代理 一、Tomcat优化 Tomcat默认安装下的…

八、进程等待

文章目录 一、进程创建(一)fork函数概念1.概念2.父子进程共享fork之前和fork之后的所有代码,只不过子进程只能执行fork之后的! (二)fork之后,操作系统做了什么?1.进程具有独立性,代…

(二)CSharp-字段-属性-常量

一、字段 什么是字段 字段(filed)是一种表示与对象或类型(类或结构体)关联的变量字段是类型的成员,旧称“成员变量”与对象关联的字段亦称“实例字段”与类型关联的字段称为“静态字段”,由 static 修饰 …

java SSM 学生家长联系系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM学生家长联系系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用…

docker 安装 oracle19c

docker 安装 oracle19c 拉取镜像 sudo docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c创建挂载目录 sudo mkdir -p /mydata/oracle/oradata授权 sudo chmod 777 /mydata/oracle/oradata安装 sudo docker run -d \ -p 1521:1521 -p 5500:5500 \ -e ORACLE…

《C++高级编程》读书笔记(三:编码风格)

1、参考引用 C高级编程(第4版,C17标准)马克葛瑞格尔 2、建议先看《21天学通C》 这本书入门,笔记链接如下 21天学通C读书笔记(文章链接汇总) 1. 为代码编写文档 在编程环境下,文档通常指源文件中…

Android系统的Ashmem匿名共享内存子系统分析(5)- 实现共享的原理

声明 其实对于Android系统的Ashmem匿名共享内存系统早就有分析的想法,记得2019年6、7月份Mr.Deng离职期间约定一起对其进行研究的,但因为我个人问题没能实施这个计划,留下些许遗憾…文中参考了很多书籍及博客内容,可能涉及的比较…

springboot源码分析-jar启动

概述 Spring Boot 提供了 Maven 插件 spring-boot-maven-plugin,可以方便的将 Spring Boot 项目打成 jar 包或者 war 包。 SpringBoot 是如何通过jar包启动的 java -jar做了什么?看看官网怎么说 If the -jar option is specified, its argument is the …

基础算法(一)——补

快排 归并排序和快速排序的时间复杂度都是 O(nlogn) 左右两边设置哨兵&#xff0c;分成左边小于x, 右边大于x。 &#xff08;先分交换&#xff0c; 再递归&#xff09; #include<iostream> using namespace std; const int N1e610; int n; int q[N]; void quick_sort(i…

【计算机视觉】手把手教你配置stable-diffusion-webui进行AI绘图(保姆级教程)

文章目录 一、前言二、本地化部署的要求三、使用的项目Stable diffusion WebUI项目四、电脑环境配置4.1 安装Anaconda4.2 看版本4.3 配置库包下载环境&#xff0c;加快网络速度4.4 创建环境4.5 激活环境4.6 安装git4.7 安装cuda 五、Stable diffusion环境配置5.1 下载Stable di…

【博学谷学习记录】超强总结,用心分享丨人工智能 LLM langchain初步了解简记

目录 LangChain及必知概念LoadersDocumentText Spltters 文本分割Vectorstores 向量数据库Chain 链Agent 代理Embedding LangChain及必知概念 LangChain 是一个用于开发由语言模型驱动的应用程序的框架。他主要拥有 2 个能力&#xff1a; 可以将 LLM 模型与外部数据源进行连接…

009-从零搭建微服务-系统服务(二)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;https://gitee.com/csps/mingyue 源码地址&#xff08;前端&#xff09;&#xff1a;https://gitee.com/csps…

Flowable开始事件-定时开始事件

文章目录 定时开始事件一、定义1. 图形标记2. XML标记2.1、在指定时间点执行2.2、指定定时器之前要等待多长时间&#xff0c; timeDuration可以设置为timerEventDefinition的子元素。2.3、指定重复执行的间隔&#xff0c; 可以用来定期启动流程实例&#xff0c;或为超时时间发送…

NLP的idea,看了就能水一篇论文

1.问题 在中文情感分析任务中,已有方法仅从单极、单尺度来考虑情感特征&#xff0c;无法充分挖掘和利用情感特征信息&#xff0c;模型性能不理想。 单级单尺度&#xff1a;只从一个方面学习文本的特征 多级多尺度&#xff1a;应该是分别从不同方面学习文本的特征&#xff0c…

电脑vcomp140.dll丢失怎么修复

vcomp140.dll是Microsoft的Visual C Redistributable for Visual Studio 2015的一部分。它是一个动态链接库文件&#xff0c;主要用于在Windows操作系统上运行使用Visual Studio 2015编写和编译的软件。与其他许多Windows动态链接库文件类似&#xff0c;vcomp140.dll包含函数和…

(二)CSharp-索引器

1、索引器定义 什么是索引器 索引器&#xff08;indexer&#xff09;是这样一种成员&#xff1a;它使对象能够用与数组相同的方式&#xff08;即使用下标&#xff09;进行索引 索引器的声明参见 C# 语言定义文档注意&#xff1a;没有静态索引器 索引器是一组 get 和 set 访问…

案例32:基于Springboot在线远程考试系统开题报告设计

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

地震勘探基础(十一)之水平叠加处理

水平叠加处理 地震资料经过预处理&#xff0c;静校正&#xff0c;反褶积&#xff0c;速度分析和动校正处理后就要进行水平叠加处理。地震水平叠加处理是地震常规处理的重要环节。 假设一个共中心点道集有三个地震道&#xff0c;经过速度分析和动校正以后&#xff0c;水平叠加…