JS函数

news2025/1/9 11:59:56

目录

1.Function声明

2.匿名函数

3.函数表达式

4.箭头函数

5.构造函数

个人版JS函数使用:

函数的声明:函数如果有return则返回的是 return 后面的值,如果函数没有有return

声明方式一:

声明方式二:变量名声明(匿名函数)

函数的参数:

形参:

实参:

JS参数的特别之处:

函数的返回值:

argumants的使用:

函数的基础特性:


1.Function声明

Function也称为函数语句或函数定义,是 JavaScript 中声明函数的最常见方式。

函数声明方法只是意味着我们将使用关键字function和function后的名称来声明函数。

function foo(){
    console.log('这是一个函数的打印结果')
}

在上面中“ function ”是关键字,“foo ”是函数名。

如果我们想调用这个函数,我们所要做的就是写下它的名字,然后加上括号,如下所示:

js
复制代码foo()

函数可以接受参数。如果我们的数据是动态的,我们可以向函数传递多个参数。

假如我们希望在使用foo函数时,它会根据我们传入的参数值,动态的打印我们的参数。

我们可以这样写:

function foo(arg){
     console.log('这是我们接收的参数'+arg)
     console.log(`这是我们接收的参数${arg}`)
}
foo("zayyo")

2.匿名函数

匿名函数顾名思义指的是没有名字的函数,

匿名函数仅使用function关键字就可以声明一个函数。

function(){
            console.log(`这是一个匿名函数的打印`)   
}

但是由于匿名函数在创建后无法访问,并且只能通过赋值给变量来访问,因此我们将把它存储在一个我们称之为 foo 的变量中,这就是我们将在接下来的内容中看到的函数表达式。

3.函数表达式

函数表达式允许我们创建一个没有任何函数名的匿名函数。并且通过声明一个变量通过赋值来执行它。

let foo = function(){
          console.log(`这是一个函数表达式的打印`) 
}

在上面的代码中变量foo存储了一个匿名函数。因此,匿名函数是通过调用带有尾随括号和分号的变量来调用的。

调用示例:

let foo = function(){
          console.log(`这是一个函数表达式的打印`) 
}
foo()

4.箭头函数

let 和const是es6新出的特性声明

这种方法是创建 JavaScript 函数的一种更简洁的方法。 代码示例:


const fun = (param1, param2) => {
  // 函数体
}
(数据) const定义类型(es6开始) fun相当于名称,将JS放在了变量fun中
=>相当于return

但是,由于箭头函数没有名称,如果我们要调用它,它应该存储在一个变量中,就像函数表达式一样。

(数据) const定义类型(es6开始) fun相当于名称,将JS放在了变量fun中

=>相当于return

当函数只有一个参数时,可以省略参数周围的括号。

调用示例:


let foo = ()=>console.log(`这是一个箭头函数的打印`) 
foo()

箭头函数为定义匿名函数提供了简洁的语法。与其他函数声明方式相比,箭头函数表达式的语法更短。

当箭头函数只有一条语句时,可以省略return关键字,函数会隐式返回这条语句的结果。

箭头函数也可以接收参数:

let foo = (arg)=> console.log('这是我们接收的参数'+arg)
foo()

创建箭头函数时,括号()和花括号{}对于单个函数参数和单个语句是可以不写的。

如果函数要执行的指令很多,那么这些指令应该用花括号{}括起来:

let foo =  (number)=>{
        if(number>0){
            console.log('number大于0')
        }else{
            console.log('number小于0')
        }
}

5.构造函数

声明函数的另一种方法是使用带有 new 关键字的 Function 构造函数。

让我们先看一下语法:

let sum =new Function("a","b","return a+b");

console.log(sum(5,6))

JavaScript 有一个名为 Function 的内置构造函数对象,可用于声明和创建函数。

此构造函数可以传递任意数量的参数。在这个例子,我们向它传递了 2 个参数,即“ a ”和“ b ”。

最后一个参数是应该传递函数应该执行的指令的代码。也就是我们要执行的函数体。

一般语法是:

let funcName= new Function("arg1","arg2","arg3","arg4","arg5",......,"函数体")

所以在上面例子中我们使用 Function 对象创建了一个函数sum()。


 


个人版JS函数使用:

函数的声明:函数如果有return则返回的是 return 后面的值,如果函数没有有return

则返回undefined

声明方式一:

声明方式二:变量名声明(匿名函数)

var 变量名=function( 参数) { }

当进行调用时: 变量名( )


函数的参数:

形参不需要写数据类型:如在传数组时:可以直接穿【数据】/数组名

形参:

函数的名称里面的数据名称,只是一个代表。

形参的名称可以为任何的多个参数之间用逗号进行隔开。

实参:

在调用方法的时候需要传输的数据。



JS参数的特别之处:

当函数的形参有多个时:如果实参和形参数匹配正常进行。

如果实参个数多于形参的个数:数据会按照顺序给形参的对应位置,多余的不参与。

如果实参的个数小于形参的个数:则没有传输的数据会认为数据是undefined,输出的结果会是NaN


函数的返回值:

函数如果有return则返回的是 return 后面的值,如果函数没有有return

则返回undefined

使用return语句返回数据。

return之后的代码就不会在进行执行

return直接只能够传输一个数值,当多个时以最后为准

: return A,B,C输出B

加减的式子按为一个

但可以通过数组将数据全部传出 return [元素,元素]

也就是说,特别之处在于,他是直接将返回的数据给了调用方法短句,可以传给别的数据。

argumants的使用:

每个函数内部都有argumants

argumants存储的是调用函数时储存的数据。

argumants是伪数组,拥有数组的一些特性。

伪数组:

数据的获取直接argumants[索引] 即可获取

也可以将argumants进行遍历。

函数的基础特性:

函数之间可以进行相互调用

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

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

相关文章

0x04_数组_指针_字符串

数组 数组的定义与使用 数组是具有一定顺序关系的若干相同类型变量的集合体&#xff0c;组成数组的变量称为该数组的元素。 给出下面程序的输出&#xff1a; #include <iostream> using namespace std; int main() {int a[10], b[10];for(int i 0; i < 10; i) {a[…

【Web前端入门学习】—CSS

目录 CSS简介CSS语法CSS三种导入方式CSS选择器元素选择器&#xff08;标签选择器&#xff09;类选择器ID选择器通用选择器子元素选择器后代选择器&#xff08;包含选择器&#xff09;并集选择器&#xff08;兄弟选择器&#xff09;伪类选择器伪元素选择器 CSS常用属性盒子模型网…

3.7练习题解

一共五道题&#xff1a; 1. PERKET&#xff1a; 观察容易发现n的值很小&#xff0c;所以我们可以考虑使用dfs的方法进行解答&#xff0c;首先我们可以考虑一共有n种配料&#xff0c;那么我们就可以考虑到可以选择1到n种配料数目&#xff0c;然后基于这个思路我们再对其进行判断…

评测本地部署的语音识别模型

1 引言 最近&#xff0c;朋友给我发来了一段音频&#xff0c;想转录成文字&#xff0c;并使用大型润色文本。音频中的普通话带有一定的口音&#xff0c;并且讲解内容较为专业&#xff0c;所以一般的语音识别工具很难达到较高的识别率。 于是试用了两个大模型。Whisper 是目前…

大数据背景下R语言lavaan在SEM中的高效应用

结构方程模型&#xff08;SEM&#xff09;是揭示系统内变量间复杂关系的强大工具。它利用图形化的方式&#xff0c;将多变量间的因果关系网展现得淋漓尽致&#xff0c;具备出色的数据分析能力和广泛的适用性。近年来&#xff0c;无论是在生态、进化、环境领域&#xff0c;还是在…

分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测

分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测 目录 分类预测 | Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 Matlab基于GWO-RBF灰狼算法优化径向基神经网络的分类预测。基于灰狼算法(GWO…

Java定时调度范式定时操作

在 Java 中&#xff0c;我们可以使用各种方法来执行定时操作。这些操作包括执行任务、调度任务、执行重复任务等。下面将介绍几种常见的 Java 定时调度范式。 1. Timer 和 TimerTask Java 提供了 Timer 和 TimerTask 类&#xff0c;用于执行定时任务。 示例代码&#xff1a;…

腾讯云服务器和阿里云服务器价格测评_2024年费用大PK

2024年阿里云服务器和腾讯云服务器价格战已经打响&#xff0c;阿里云服务器优惠61元一年起&#xff0c;腾讯云服务器61元一年&#xff0c;2核2G3M、2核4G、4核8G、4核16G、8核16G、16核32G、16核64G等配置价格对比&#xff0c;阿腾云atengyun.com整理阿里云和腾讯云服务器详细配…

基于SpringBoot+Vue+ElementUI+Mybatis前后端分离管理系统超详细教程(三)

拓展学习——用XML方式写动态SQL实现数据库更新操作 前情回顾 前一章节我们学习了使用注解方式实现后端数据库增删改查操作 基于SpringBootVueElementUIMybatis前后端分离管理系统超详细教程&#xff08;二&#xff09; 本节课程接着拓展一下用xml配置文件方式来实现对数据…

练习 6 Web [极客大挑战 2019]HardSQL

[极客大挑战 2019]HardSQL 先尝试登录&#xff0c;查看报错信息 admin 111 password 1111 登录失败admin 111 password 1’or’1 登录成功 这里直接试了万能密码成功&#xff0c;复习一下&#xff0c;第一个 ’ 是为了闭合前面的sql语句&#xff0c;最后的1后面没有 ’ 是因为…

【数学建模】层次分析代码(python)

上一篇学习了层次分析的理论&#xff0c;今天用代码实现一下吧&#xff01; 判断矩阵的一致性检验 import numpy as np A np.array([[1,2,3,5],[1/2,1,1/2,2],[1/3,2,1,2],[1/5,1/2,1/2,1]]) n A.shape[0]#获取A的行 eig_val, eig_vecnp.linalg.eig(A)#计算方阵的特征值和特…

STM32CubeMX学习笔记16--- STM32内部FLASH

1. 内部FLASH简介 之前的文章中介绍过STM32F1利用SPI与外部FLASH&#xff08;W25QXX芯片&#xff09;通讯的例程&#xff0c;本例程将介绍STM32F1的内部FLASH&#xff0c;通过内部FLASH实现数据读写操作。 不同型号的STM32&#xff0c;其FLASH容量也有所不同&#xff0c;最小的…

【产品文档分类及撰写路径】

一、产品文档的分类 产品文档根据所处阶段和面相对象的差异大致可以分为三类&#xff1a; 商业需求文档 (BRD)&#xff1a;商业需求文档是面向公司高层和项目组&#xff0c;目的是为了获得资金、资源支持。市场需求文档 (MRD)&#xff1a;市场需求文档是面向运营和市场销售人员…

基于springboot+vue的旅游管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

微服务架构中实体类模块化设计与MyBatis-Plus注解浅析

引言 在微服务开发过程中&#xff0c;为了保证代码的整洁性和可维护性&#xff0c;我们通常会将VO&#xff08;视图值对象&#xff09;、DTO&#xff08;数据传输对象&#xff09;、DO&#xff08;领域对象&#xff09;等实体类独立组织成一个API模块。这样做的目的是实现代码…

大模型相关算法模型学习

对Transformer中Add&Norm层的理解-CSDN博客 GPT模型总结【模型结构及计算过程_详细说明】_gpt结构-CSDN博客 推荐30个以上比较好的中文nlp意图识别模型源码&#xff1f;-CSDN博客 Few-shot learning&#xff08;少样本学习&#xff09;入门 - 知乎 (zhihu.com) 零次学习…

Day15:技术架构、Maven、Spring Initializer、Spring全家桶、Spring IoC

侧重于服务端&#xff08;后端&#xff09;&#xff0c;不在意前端&#xff0c;了解一些前端即可&#xff09; 技术架构 &#xff08;把Spring设计的更简单好用了就是Spring Boot&#xff09; 开发环境&#xff08;Maven&#xff09; Maven maven通过brew安装的目录为&#x…

【uni-app小程序开发】实现一个背景色渐变的滑动条slider

最近做的一个用uni-app+vue2开发的微信小程序项目中要实现一个滑动进度控制条,如下图所示: 1. 滑动条需要渐变背景色 2. 滑块的背景色需要与当前位置滑动条的背景色一致(动态改变) 碰到这样的需求,我当然先是看看官方提供的slider组件和uView里的u-slider组件能不能满足…

YOLOv9电动车头盔佩戴检测,详细讲解模型训练

向AI转型的程序员都关注了这个号&#x1f447;&#x1f447;&#x1f447; 一、YOLOv9简介 YOLOv9是YOLO系列算法的最新版本。YOLO系列算法自2015年首次提出以来&#xff0c;已经在目标检测领域取得了显著的进展&#xff0c;以其快速和准确的特点而广受欢迎。 论文地址&#xf…

IPSEC VPN 网关模式实验

要求&#xff1a;FW1与FW3建立IPSEC通道&#xff0c;保证10.0.2.0/24网段能访问192.168.1.0/24网段 因为FW1与FW3都处于边界&#xff0c;所以使用网关部署模式来建立IPSEC VPN FW1 这里选择主模式跟隧道模式 FW3与FW1配置类似&#xff0c;与FW1的源目地址反过来&#xff0c;…