【JS基础知识07】函数

一:函数是什么以及函数作用

1 函数是什么

函数是经过封装、调用后,能够完成特定任务的代码块

2 函数的作用

仅需“函数名(实参)”就可以调用函数,起到精简代码,提高开发效率的作用

二:函数使用

1 语法规则:

//具名函数
function 函数名(形式参数/形参){函数体
}
//匿名函数
function(){}

2 函数名命名规范:(规范而非规则)

  • 前缀应为 动词
  • 小驼峰命名的原则

常用动词整理

3 调用函数方式

“函数名(实际参数/实参)”,随调随用

4 函数传参的使用

  1. 形参与实参理解

    1. 形参理解为函数内声明了、但未赋值的变量
    2. 实参可以理解为向函数内的形参变量赋值的过程
    3. eg:parseInt('11')、Number('111'),本质是向函数传递实参
  2. 作用:

    1. 提高了函数的灵活性,并不会让函数拘泥于死数据
  3. 减少函数报错风险方式:

    给函数传递一个默认值,如果没有传递实参,形参不至于是undefined类型;
    1.  let sum = 0function addSum(array = []) {for (let index = 0; index < array.length; index++) {const element = array[index];sum += element}console.log(sum);}addSum([1, 2, 3])

三:return返回值

1 语法:

return 数值

2 对return的理解

函数是否需要设置返回值,根据函数用途、以及具体需求来判断

例如:parseInt('12px')、prompt('请输入一个值'),这些都为JS底层已经封装好了的函数,这些函数调用者都会得到一个返回值,依次为12、以及输入的值;

同样例如alert('你明白了嘛'),这个函数就没有返回值

因此,不管是自己封装的函数亦或者是JS底层封装的函数,都是根据实际的功能书写以及调用

3 return使用细节

  1. return使用时不要将后面要返回的数值换行写
  2. 如果一个函数没有返回值,那么这个函数默认返回undefined
  3. return可以将函数内运行结果交给函数外部调用者
  4. return语句后面的代码,将不再执行;如果运行完return语句后,函数会立即结束执行;

​​​​​​​4 return应用

要求:返回出数组中的最大、小值

function getNum(array = []) {let max = array[0]let min = array[0]let arr = []for (let index = 0; index < array.length; index++) {const element = array[index];if (max < array[index]) {max = array[index]}if (min > array[index]) {min = array[index]}}return [max, min]}let num = getNum([1, 2, 3, 4, 5])
console.log(num);

对于return来说,返回值通常只能返回一个值;因此要一次返回多个值,可以利用数组,将数据存在数组中返回;

四:作用域

所谓作用域指的是变量能够访问的范围

1 作用域分类

全局作用域:是在整个js文件中书写、或者是<script>标签中书写的变量

局部作用域:指函数内部书写的变量

2 变量分类

依据作用域不同,变量又可以分为全局变量和局部变量

全局变量:在全局作用域中的变量,为全局变量。其可以在任何区域都可以访问和修改

局部变量:只能在局部变量所在的函数内部访问和修改,在函数外部无法访问到该变量,会报错

3 注意

  • 函数内部变量未经声明,就赋值使用,该变量会变成全局作用域(不推荐)
  • 函数形参当作局部变量,不能再函数外部调用

五:匿名函数

函数根据有无函数名可以分为具名函数与匿名函数

1 语法:

function(){}

2 如何调用匿名函数

(1)利用函数表达式调用

//声明函数
let num = funciton(形参){}
//调用函数
num(实参)

(2)利用立即执行函数方式调用

所谓立即执行函数,指未经调用便可立即执行

//第一种写法
(function(形参){函数体})(实参)
//第二种写法
(function(形参){}(实参))

(3)注:

多个立即执行函数之间要用分号隔开

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

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

相关文章

一款免费的软件媒体系统软件!!【送源码】

Jellyfin是一个免费的软件媒体系统&#xff0c;让您在管理和流媒体控制您的媒体。它是专有的Emby和Plex的替代品&#xff0c;通过多个应用程序从专用服务器向最终用户设备提供媒体。Jellvfin是Emby的3.5.2版本的后裔&#xff0c;并被移植到.NETCore框架中&#xff0c;以实现完全…

SpringBootWeb 篇-深入了解会话技术与会话跟踪三种技术(Cookie 会话跟踪、Session 会话跟踪与 JWT 令牌会话跟踪)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 会话技术 2.0 会话跟踪 2.1 会话跟踪 - Cookie 2.1.1 客户端获取 Cookie 的流程 2.1.2 Cookie 会话跟踪的特点 2.2 会话跟踪 - Session 2.2.1 客户端获取 SESSION…

Let‘s Encrypt 免费证书申请

填写邮箱&#xff0c;申请的域名 单域名&#xff1a;www.example.com 泛域名&#xff1a; *.example.com yum -y install certbot sudo certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --email xxexample…

AI 驱动的低代码平台-网易CodeWave 低代码平台 AI 智能化实践

一、实践背景&#xff1a; 随着低代码赛道的蓬勃发展&#xff0c;越来越多的低代码产品如雨后般春笋涌出开始进入市场&#xff0c;面对市场的考验&#xff0c;低代码平台也在面临两大问题&#xff1a; 定制开发的使用门槛太高&#xff0c;效率太低。低代码产品进入到企业当中…

ArcGIS不同图斑设置不同的透明度

对于设置一个图层的整体的透明度&#xff0c;我们在 ArcGIS制作带蒙版的遥感影像地图http://mp.weixin.qq.com/s?__bizMzIzNjM2NTYxMg&mid2247509080&idx1&sn38dccf0a52bb3bb3758f57114ee38b72&chksme8da161bdfad9f0d363da90959a8524dcf2b60d0e8d999f8ebeef0…

操作系统真象还原:编写MBR主引导记录,让我们开始掌权

第2章-编写MBR主引导记录&#xff0c;让我们开始掌权 这是一个网站有所有小节的代码实现&#xff0c;同时也包含了Bochs等文件 在开机的一瞬间&#xff0c;也就是接电的一瞬间&#xff0c; CPU 的 CS: ip 寄存器被强制初始化为 0XF000: 0XFFF0。由于开机的时候处于实模式&…

橙派探险记:开箱香橙派 AIpro 与疲劳驾驶检测的奇幻之旅

目录 引子&#xff1a;神秘包裹的到来 第一章&#xff1a;香橙派AIpro初体验 资源与性能介绍 系统烧录 Linux 镜像&#xff08;TF 卡&#xff09; 调试模式 登录模式 第二章&#xff1a;大胆的项目构想 系统架构设计 香橙派 AIpro 在项目中的重要作用 第三章&#xf…

高级数据结构-并查集

例题1&#xff1a; Alice和Bob玩了一个古老的游戏&#xff1a;首先画一个 &#x1d45b;&#x1d45b; 的点阵&#xff08;下图 n3 &#xff09;。 接着&#xff0c;他们两个轮流在相邻的点之间画上红边和蓝边&#xff1a; 直到围成一个封闭的圈&#xff08;面积不必为 1&#…

Vue3使用Composition API实现响应式

title: Vue3使用Composition API实现响应式 date: 2024/5/29 下午8:10:24 updated: 2024/5/29 下午8:10:24 categories: 前端开发 tags: Vue3CompositionRefsReactiveWatchLifecycleDebugging 1. 介绍 Composition API是Vue.js 3中新增的一组API&#xff0c;用于在组件中组…

【3.vi编辑器使用(上)】

一、vi编辑器的三种模式及切换命令 1、vi是linux中最基本的编辑器。但vi编辑器在系统管理、服务器配置工作中永远都是无可替代的。 2、vi编辑器的三种模式&#xff1a;命令行模式、插入模式、底行模式。 &#xff08;1&#xff09;命令行模式&#xff1a;用户在用vi编辑文件…

Spring OAuth2:开发者的安全盾牌!(下)

上文我们教了大家如何像海盗一样寻找宝藏&#xff0c;一步步解锁令牌的奥秘&#xff0c;今天将把更加核心的技巧带给大家一起学习&#xff0c;共同进步&#xff01; 文章目录 6. 客户端凭证与密码模式6.1 客户端凭证模式应用适用于后端服务间通信 6.2 密码模式考量直接传递用户…

《Effective Objective-C 2.0》读书笔记——熟悉Objective-C

目录 第一章&#xff1a;熟悉Objective-C第1条&#xff1a;了解Objective-C语言的起源第2条&#xff1a;在类的头文件中尽量少引入其他头文件第3条&#xff1a;多用字面量语法&#xff0c;少用与之等价的方法第4条&#xff1a;多用类型常量&#xff0c;少用#define预处理指令第…

研发设计管理、研发设计管理系统有哪些

研发设计管理系统种类繁多&#xff0c;每种系统都有其特定的功能和用途。以下是一些常见的研发设计管理系统及其主要功能&#xff1a; PLM&#xff08;产品生命周期管理&#xff09;研发管理系统&#xff1a; 功能&#xff1a;管理产品从概念、设计、开发、制造、销售到维护的…

对比方案:5款知识中台工具的优缺点详解

知识中台工具为企业和组织高效地组织、存储和分享知识&#xff0c;还能提升团队协作的效率。在选择搭建知识中台的工具时&#xff0c;了解工具的优缺点&#xff0c;有助于企业做出最佳决策。本文LookLook同学将对五款搭建知识中台的工具进行优缺点的简单介绍&#xff0c;帮助企…

docker-file 网络

docker挂载 1.绑定挂载&#xff08;Bind Mounts&#xff09;&#xff1a;绑定挂载是将主机上的文件或目录挂载到容器中。 docker run -v /host/path:/container/path image_name 2.卷挂载&#xff08;Volume Mounts&#xff09;&#xff1a;卷挂载将 Docker 数据卷挂载到容器中…

OpenMv图片预处理

本博客讲述的是获取一张图片首先对图像进行处理,比如畸形矫正,图像滤波等操作。 1.histeq()自适应直方图均衡 # 自适应直方图均衡例子 # # 此示例展示了如何使用自适应直方图均衡来改善图像中的对比度。 #自适应直方图均衡将图像分割成区域,然后均衡这些区域中的直方图,…

前端项目开发,3个HTTP请求工具

这一小节&#xff0c;我们介绍一下前端项目开发中&#xff0c;HTTP请求会用到的3个工具&#xff0c;分别是fetch、axios和js-tool-big-box中的jsonp请求。那么他们都有哪些小区别呢&#xff1f;我们一起来看一下。 目录 1 fetch 2 axios 3 js-tool-big-box 的 jsonp 请求 …

操作系统复习-操作系统概述

操作系统概述 操作系统的基本功能 操作系统统一管理着计算机资源&#xff1a; 处理器资源IO设备资源存储器资源文件资源 操作系统实现了对计算机资源的抽象&#xff1a; 用户无需向硬件接口编程IO设备管理软件&#xff0c;提供读写接口文件管理软件&#xff0c;提供操作文…

2.1.2 基于配置方式使用MyBatis

文章目录 实战目标实战步骤1. 创建Maven项目2. 添加项目依赖3. 创建用户实体类4. 创建用户映射器配置文件5. 创建MyBatis配置文件6. 创建日志属性文件7. 测试用户操作8. 运行测试方法 预期结果实战方法结论 实战目标 本实战的目标是演示如何使用MyBatis框架来操作数据库。通过…