JavaScript的函数(几种函数的定义和使用)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


江城如画里,山晓望晴空。


文章目录

  • 函数
    • 1. 自定义函数
      • 1.1 语法
      • 1.2 注意事项
      • 1.3 变量的作用域
      • 1.4 示例代码
      • 1.5 控制台结果
    • 2. 回调函数
      • 2.1 定义语法
      • 2.2 应用
      • 2.3 示例代码
      • 2.4 控制台输出
    • 3. 匿名函数
      • 3.1 应用场景
      • 3.2 示例代码
      • 3.3 控制台结果
    • 4. 箭头函数
      • 4.1 定义语法
      • 4.2 注意事项
      • 4.3 示例代码
      • 4.4 控制台输出结果
    • 5. 示例代码下载


JS系列篇:
JS(JavaScript)入门学习指南
JS(JavaScript)学习专栏


函数

JS中的函数有以下几种:自定义函数、回调函数、匿名函数、箭头函数。

1. 自定义函数

1.1 语法

自定义函数的语法如下

        function 函数名(参数1,参数2,...){函数体}

1.2 注意事项

定义函数时不需要指定参数的类型
实参个数和形参个数可以不同,未指定参数时其默认值为undefined
不需要指定返回只的类型,如果有返回值,直接使用return返回即可
如果函数中没有使用return返回值,则默认返回undefined

1.3 变量的作用域

变量在代码中的作用域

名称含义
局部作用域在函数中声明的变量,只能在此函数内访问,函数运行结束变量自动销毁
全局作用域在函数外声明的变量,在任何位置都可以访问
块级作用域使用let关键字声明的变量,只能在声明它的代码块内访问

1.4 示例代码

示例代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>函数-自定义函数</title><script>//语法/*function 函数名(参数1,参数2,...){函数体}*///定义函数-举例,无参function fn1(){console.log("无参函数");}//定义函数-举例,有参function fn2(n1,n2,n3){console.log("有参函数");}//调用函数fn1();var sum = fn2(1,2,3);console.log(sum);var a = 110;function fn4(){var b = 111;}{var c = 112;let d = 119;}console.log("全局变量a:",a);console.log("局部变量b:",b);console.log("块级作用域变量c:",c);console.log("块级作用域变量d:",d);</script>
</head>
<body></body>
</html>

1.5 控制台结果

浏览器控制台结果输出
在这里插入图片描述

2. 回调函数

不立即执行的函数调用,满足一定条件时执行或者由别的代码调用执行,称为回调函数callback
调用时只写函数名,没有小括号和参数

2.1 定义语法

定义语法如下

function 函数名(){函数体}

2.2 应用

作为事件绑定的函数
作为其他函数的参数

2.3 示例代码

示例代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>函数-回调函数</title><script>function f1(){console.log("libai");}//事件绑定的函数//点击页面时触发函数,即回调函数,不能加小括号window.onclick = f1;//函数作为参数//函数本身也是一种数据类型,数据类型string,number,boolean,null,undefined,object,functionconsole.log(typeof f1);var f = f1;f();console.log(typeof f);function f2(a,b){a();}f2(f1,2);</script>
</head>
<body></body>
</html>

2.4 控制台输出

浏览器控制台输出
在这里插入图片描述

3. 匿名函数

没有名字的函数称为匿名函数,一般用于回调

3.1 应用场景

用于函数的回调
用于一次性执行的函数,会自动执行,称为自执行函数

3.2 示例代码

示例代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>函数-匿名函数</title><script>//匿名函数回调window.onclick=function(){//匿名函数,用于回调console.log("点击页面触发函数执行");};//用于一次性执行的函数-自执行函数(function(){console.log("只执行一次的函数");})();</script>
</head>
<body></body>
</html>

3.3 控制台结果

浏览器控制台结果输出
在这里插入图片描述

4. 箭头函数

ES6中允许使用箭头定义函数,称为箭头函数,也称为lamda表达式,是一种特殊的匿名函数,使用=>符号

4.1 定义语法

语法如下

参数 => 返回值

4.2 注意事项

如果箭头函数没有参数,也必须带上小括号表示参数部分
如果箭头函数有两个或两个以上的参数,则必须使用小括号
如果箭头函数的函数体部分多于一句,则需要使用花括号括起来
以上三条注意事项可通过下方示例代码查看

4.3 示例代码

示例代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>函数-箭头函数</title><script>/*ES6中允许使用箭头定义函数,称为箭头函数,也称为lamda表达式,是一种特殊的匿名函数,使用=>符号*///语法:参数 => 返回值var a = function(x){return x*2;}console.log(a(2));//使用箭头函数var b = x => x*2;console.log(b(2));//如果箭头函数没有参数或者参数多于2个及以上,则必须使用小括号表示参数部分var c = function(){return 1;}console.log(c());//使用箭头函数var d = ()=>1;console.log(d());var e = function(x,y){return x+y;}console.log(e(2,3));//使用箭头函数var f = (x,y) => x+y;console.log(f(2,3));//如果箭头函数的函数体多于一句,则需要使用花括号括起来var g = function(x,y){var sum = x+y;return sum;}console.log(g(3,3));//使用箭头函数var h = (x,y) => {var sum = x+y;return sum;}console.log(h(3,3));</script>
</head>
<body></body>
</html>

4.4 控制台输出结果

浏览器控制台输出结果
在这里插入图片描述

5. 示例代码下载

示例代码已上传至CSDN资源库
下载地址:JavaScript 不同类型函数的定义和使用 示例代码


感谢阅读,祝君暴富!

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

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

相关文章

实时数据的处理一致性如何保证?

实时数据一致性的定义以及面临的挑战 数据一致性通常指的是数据在整个系统或多个系统中保持准确、可靠和同步的状态。在实时数据处理中&#xff0c;一致性包括但不限于数据的准确性、完整性、时效性和顺序性。 下图是典型的实时/流式数据处理的流程&#xff1a; 流式数据以各…

搜索二叉树的概念及实现

搜索二叉树的概念 搜索二叉树规则&#xff08;左小右大&#xff09;&#xff1a; 非空左子树的键值小于其根节点的键值非空右子树的键值大于其根节点的键值左右子树均为搜索二叉树 如图&#xff1a; 在搜索时&#xff0c;若大于根&#xff0c;则去右子树寻找&#xff1b;若小…

Python:基础爬虫

Python爬虫学习&#xff08;网络爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字…

flask实现抽奖程序(一)

后端代码E:\LearningProject\lottery\app.py from flask import Flask, render_template import randomapp Flask(__name__)employees [赵一, 钱二, 孙三, 李四, 周五, 吴六, 郑七, 王八]app.route(/) def hello_world():return render_template(index.html, employeesemplo…

企业多云策略的优势与实施指南

企业在选择云服务提供商时&#xff0c;常见的选项包括亚马逊AWS、微软Azure、谷歌云GCP、阿里云、腾讯云和华为云。为了避免过度依赖单一供应商&#xff0c;许多企业选择采用多云策略&#xff0c;这样可以充分利用不同云服务的优势&#xff0c;同时避免重复工作和其他额外的工作…

每天五分钟计算机视觉:如何在现有经典的卷积神经网络上进行微调

本文重点 在深度学习领域,卷积神经网络(Convolutional Neural Networks,CNN)因其强大的特征提取和分类能力而广泛应用于图像识别、自然语言处理等多个领域。然而,从头开始训练一个CNN模型往往需要大量的数据和计算资源,且训练时间较长。幸运的是,迁移学习(Transfer Le…

git如果将多次提交压缩成一次

将N个提交压缩到单个提交中有两种方式&#xff1a; git reset git reset的本意是版本回退&#xff0c;回退时可以选择保留commit提交。我们基于git reset的作用&#xff0c;结合新建分支&#xff0c;可以实现多次commit提交的合并。这个不需要vim编辑&#xff0c;很少有冲突。…

WEB基础--TOMCAT服务器

服务器概述 什么是服务器 服务器&#xff1a;就是一个提供为人民服务的机器&#xff0c;这里的服务器主要指计算机服务器&#xff0c;分为两种&#xff1a;服务器软件和硬件服务器&#xff1b; 服务器分类 1、硬件服务器&#xff1a;安装了服务器软件的主机。就相当于高配的…

复合机器人以其高度的灵活性和操作效率,展现了显著的优势

随着工业4.0的深入推进和智能制造的快速发展&#xff0c;复合机器人作为一种集成移动机器人和工业机器人功能的先进设备&#xff0c;正逐步成为工业自动化领域的新宠。特别是在磁钢上下料的应用中&#xff0c;复合机器人以其高度的灵活性和操作效率&#xff0c;展现了显著的优势…

基于C#开发web网页管理系统模板流程-主界面密码维护功能完善

点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 紧接上篇->基于C#开发web网页管理系统模板流程-主界面统计功能完善-CSDN博客 一个合格的管理系统&#xff0c;至少一定存在一个功能——用户能够自己修改密码&#xff0c;理论上来说密码只能有用…

Matlab图像处理——细胞图像的分割和计数显示

一. 项目介绍 使用MATLAB编写的细胞图像分割及计数系统&#xff0c;实现了对图像内细胞的计数&#xff0c;以及对每个细胞周长和面积的测量&#xff0c;并分别展示了分割后的每个细胞的图像。实验步骤共分为图像预处理、图像预分割、空洞填充、黏连细胞分割、细胞个数统计、细胞…

TikTok网红营销指南 | 怎么找到TikTok网红并进行合作?

如果你打算在tiktok上进行营销&#xff0c;忽略与tiktok网红合作无异于错失良机&#xff0c;时尚博主Sophia仅用一条30秒的视频展示了自己从一家新兴品牌购买的连衣裙&#xff0c;视频迅速获得了数百万的点赞和评论&#xff0c;也让该品牌的销量翻了好几倍。 这种与网红合作的策…

Qt绘图项目 - 简易表盘

废话少说&#xff0c;放码过来 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();prot…

LayUI使用(二)处理表格会出现下拉框的问题

一、问题描述 如下&#xff0c;layui的表格渲染后&#xff0c;当鼠标悬停在表格项时会出现右侧的下拉框&#xff0c;layui版本较老&#xff0c;原因未知 二、处理办法 在cols里面加上width&#xff0c;也不用每个都加&#xff0c;加一部分表格项即可 注意&#xff1a;若想禁止…

iOS/iPadOS18Beta是否值得升级体验?Bug汇总和升级办法分享!

苹果昨天发布了iOS/iPadOS18Beta更新&#xff0c;引入了诸多新功能/新特性&#xff0c;很多喜欢尝鲜的用户已经在第一时间进行了升级。 iOS/iPadOS18Beta目前存在不少Bug&#xff0c;建议暂时不要更新&#xff0c;轻则浪费装机时间&#xff0c;重则丢失相关数据&#xff0c;甚至…

ping: www.baidu.com: 未知的名称或服务(IP号不匹配)

我用的是VMware上的Red Hat Enterprise Linux 9&#xff0c;出现了能联网但ping不通外网的情况。 问题描述&#xff1a;设置中显示正常连接&#xff0c;而且虚拟机右上角有联网的图标&#xff0c;但不能通外网。 按照网上教程修改了/etc/resolv.conf和/etc/sysconfig/network-…

江协科技51单片机学习-1 安装Keil5开发环境

前言&#xff1a; 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记&#xff0c;在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用&#xff1a; 51单片机入门教程-2…

Flask基础2-Jinja2模板

目录 1.介绍 2.模板传参 1.变量传参 2.表达式 3.控制语句 4.过滤器 5.自定义过滤器 6.测试器 7.块和继承 flask基础1 1.介绍 Jinja2:是Python的Web项目中被广泛应用的模板引擎,是由Python实现的模板语言,Jinja2 的作者也是 Flask 的作 者。他的设计思想来源于Django的模…

Shell脚本从入门到实战

一、概述 shell 是一个命令行解释器&#xff0c;它接受应用程序、用户命令&#xff0c;然后调用操作系统内核。 shell 还是一个功能强大编程语言&#xff0c;易调试&#xff0c;易编写&#xff0c;灵活性强。 二、mac 怎么重启docker 1.如何重启 Docker on Mac 在 macOS 上…

Python界面编辑器Tkinter布局助手 使用体验

一、发现 我今天在网上搜关于Python Tkinter方面的信息时&#xff0c;发现了Python界面编辑器 Tkinter布局助手 的使用说明。 https://blog.csdn.net/weixin_52777652/article/details/135291731?spm1001.2014.3001.5506 这个编辑器是个开源的项目&#xff0c;个人用户可以…