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

news2025/1/11 7:51:45

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


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


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


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


文章目录

  • 函数
    • 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,function
        console.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.coloradmin.cn/o/1820373.html

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

相关文章

UKP3D用户定制图框的思路

为用户定制图框&#xff0c;记录以下图框制作方法&#xff0c;便于用户自已修改。 1.轴测图与平面图的图框&#xff1a; 1.1.图框在安装目录下&#xff0c;例如&#xff1a;E:\Program Files (x86)\UKSoft\UKP3d9.2\config\TemplateAndBlock\CADTemplate\ 1.2.配置文件在安装…

Qt creator day1 练习

自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面&#xff0c;要求&#xff1a;第行代码都有注释 #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->setWindowTitle("贪玩蓝月——是兄弟就来砍我 登入&#…

Google play,应用被下架,活跃用户断崖式下跌?

相信在Google paly上架应用的开发者&#xff0c;都经历过应用被下架的情况。不少开发者吐槽&#xff0c;应用被下架之后&#xff0c;前期推广积累的活跃用户也会一个星期内断崖式下跌&#xff0c;这就很难搞了&#xff0c;严重影响了收益。 &#xff08;想与众多开发者交流谷歌…

Armbian OS(基于ubuntu24) 源码编译mysql 5.7

最近弄了个S905X3的盒子刷完Armbian OS &#xff08;基于ubuntu24&#xff09;&#xff0c;开始折腾Arm64之旅。第一站就遇到了MySQL的问题&#xff0c;由于MySQL没有提供Arm64版本&#xff0c;又不想塞Docker镜像&#xff0c;因此选择源码来编译MySQL5.7。下面记录详细过程和遇…

磁盘管理 以及磁盘的分区 详细版

磁盘管理 track:磁道&#xff0c;就是磁盘上同心圆&#xff0c;从外向里&#xff0c;依次1号、2号磁道sector&#xff1a;扇区&#xff0c;将磁盘分成一个一个扇形区域&#xff0c;每个扇区大小是512字节&#xff0c;从外向里&#xff0c;依次是1号扇区、2号扇区cylinder&…

swift5 在当前控制器先dismiss后pop

如下图需要在present当前控制器时用全局变量firmwareUpgradePresentingVC先引用上一个控制器&#xff08;下面的代码亲测有效&#xff09; func dismissAndPop() {self.dismiss(animated: false) {firmwareUpgradePresentingVC.navigationController!.popViewController(animat…

比利时海外媒体宣发,发稿促进媒体通稿发布新形势-大舍传媒

引言 随着全球化的推进&#xff0c;海外媒体的影响力也日益增强。在这一背景下&#xff0c;比利时海外媒体的宣发工作成为了媒体通稿发布的新形势。大舍传媒作为一家专注于宣传推广的公司&#xff0c;一直致力于与比利时博伊克邮报&#xff08;boicpost&#xff09;合作&#…

ubuntu软件安装

目录 更新Ubuntu软件下载地址 1. 寻找国内镜像源 2. 备份Ubuntu默认的源地址 3. 更新源服务器列表 4. 更新源 更新Ubuntu软件下载地址 1. 寻找国内镜像源 所谓的镜像源&#xff1a;可以理解为提供下载软件的地⽅&#xff0c;⽐如 Android ⼿机上可以下载软件的 91 ⼿机助…

荣耀正式发布Magic V Flip,打造全形态折叠屏矩阵

6月13日&#xff0c;荣耀Magic V Flip科技时尚大秀在上海举行。作为荣耀旗下首款小折叠手机&#xff0c;荣耀Magic V Flip的问世标志着荣耀完成折叠屏全体系的最终部署&#xff0c;成为少数集齐现有各类折叠屏手机形态的品牌之一。 荣耀从消费者需求出发&#xff0c;以AI和折叠…

Spring Security——添加验证码

目录 项目总结 新建一个SpringBoot项目 VerifyCode&#xff08;生成验证码的工具类&#xff09; WebSecurityController控制器 VerifyCodeFilter&#xff08;自定义过滤器&#xff09; WebSecurityConfig配置类 login.html登录页面 项目测试 本项目是以上一篇文章的项目…

【知识整理】软件版本号的定义及规范

版本号简述 在软件开发项目中&#xff0c;版本号是一个非常重要的概念&#xff0c;它能够告诉用户软件的功能、质量和安全性等信息&#xff0c;同时也可以帮助开发者追踪软件的历史和进展&#xff0c;并做好版本控制工作。在本文中&#xff0c;我们将介绍版本号的定义及规范&a…

创新入门|生成式AI创新赋能优势解析,获取生成式AI知识的10大方法

生成式AI技术对员工和企业影响深远。对于员工而言&#xff0c;生成式AI能够提升工作效率&#xff0c;简化重复性任务&#xff0c;并为创意和决策提供支持。对于企业而言&#xff0c;生成式AI在产品创新、市场营销、客户服务和运营优化等方面发挥重要作用&#xff0c;帮助预测市…

一篇文章全面了解Ajax框架

目录 什么是AJAX&#xff1f; 如何使用AJAX&#xff1f; 语法 url详解 URL的概念 URL的组成 URL查询参数 axios axios-查询参数 axios-请求配置 常用请求方法 axios-错误处理 HTTP协议 HTTP协议-请求报文 HTTP协议-响应报文 接口文档 AJAX原理 AJAX原理 - XM…

【STM32】飞控设计

【一些入门知识】 1.飞行原理 【垂直运动】 当 mg&#xff1e;F1F2F3F4&#xff0c;此时做下降加速飞行 当 mg&#xff1c;F1F2F3F4&#xff0c;此时做升高加速飞行 当 mgF1F2F3F4 &#xff0c;此时垂直上保持匀速飞行。 【偏航飞行】 ω 4 ω 2 ≠ ω 1 ω 3 就会产生水…

选择制造业生产管理系统指南

在当今日益激烈的市场竞争中&#xff0c;制造业企业要想保持领先地位&#xff0c;就必须拥有一套高效、智能的生产管理系统。选择一套合适的制造业生产管理系统&#xff0c;不仅能帮助企业优化生产流程、提高生产效率&#xff0c;还能降低生产成本、提升产品质量。 一、发现制…

Unity UGUI ScrollRect 滑动显示左右箭头

目录 一、前言 二、效果 三、代码解析 EnhancedScrollRect.cs 解析 Start 方法 HandleArrowVisibility 方法 EnhancedScrollRectEditor.cs 解析 OnEnable 方法 OnInspectorGUI 方法 四、完整代码 EnhancedScrollRect.cs EnhancedScrollRectEditor.cs 五、总结 De…

ollama系统更改模型存放位置

1.windows 设置完后可以在cmd中检查一下&#xff1a;echo %ollama_models% 2.linux 首先第一步&#xff1a;cd /etc/systemd/system/ 打开配置文件vim ollama.service 第二步&#xff1a;目录下的environment里面分号隔开添加OLLAMA_MODELS环境变量 第三步&#xff1a;source …

单张图像扩散模型(Single Image DIffusion Model)

论文&#xff1a;SinDDM: A Single Image Denoising Diffusion Model&#xff0c; ICML 2023 去噪扩散模型&#xff08;DDM&#xff09;在图像生成、编辑和恢复方面带来了惊人的性能飞跃。然而&#xff0c;现有DDM使用非常大的数据集进行训练。在这里&#xff0c;介绍一个用于…

tkinter文本对齐方式

tkinter文本对齐方式 文本对齐方式效果代码 文本对齐方式 左对齐&#xff08;left&#xff09;&#xff1a;默认对齐方式&#xff0c;文本从左边界开始。右对齐&#xff08;right&#xff09;&#xff1a;文本从右边界开始。居中对齐&#xff08;center&#xff09;&#xff1…

代码生成-CodeGeeX2本地部署体验

一 CodeGeeX2介绍&#xff1a; CodeGeeX2 是多语言代码生成模型 CodeGeeX (KDD’23) 的第二代模型。不同于一代 CodeGeeX&#xff08;完全在国产华为昇腾芯片平台训练&#xff09; &#xff0c;CodeGeeX2 是基于 ChatGLM2 架构加入代码预训练实现&#xff0c;得益于 ChatGLM2 的…