JavaScript快速入门系列-3(函数基础)

第三章:函数基础

    • 3.1 函数定义与调用
      • 3.1.1 函数声明
      • 3.1.2 函数表达式
    • 3.2 参数与返回值
    • 3.3 匿名函数与立即执行函数表达式(IIFE)
      • 3.3.1 匿名函数
      • 3.3.2 立即执行函数表达式
    • 3.4 箭头函数
      • 3.4.1 箭头函数与this
    • 3.5 函数的高级话题
      • 3.5.1 闭包
      • 3.5.2 函数柯里化
      • 3.5.3 高阶函数
    • 小结

开篇图

在JavaScript的征途中,函数是你的忠诚骑士,它们携带智慧与力量,助你解决复杂问题,实现代码复用与模块化。这一章节,我们将深入探索函数的奥秘,从基本定义到高级用法,逐步揭开函数的面纱。

3.1 函数定义与调用

函数,简单来说,是一段可重复使用的代码块,它封装了特定功能,通过名称调用来执行。让我们从最基础的函数定义开始。

3.1.1 函数声明

函数声明是最直接的方式,它由function关键字引导,后跟函数名,参数列表(如果有),最后是函数体。

function sayHello(name) {console.log("Hello, " + name + "!");
}

调用函数时,只需写出其名称,后跟一对圆括号,括号内可传入参数值。

sayHello("Alice"); // 输出: Hello, Alice!

3.1.2 函数表达式

不同于函数声明,函数表达式是将一个匿名函数赋值给变量。这种方式下,函数没有名字(除非你给它赋值的变量赋予一个名字)。

const greet = function(name) {console.log("Greetings, " + name + "!");
};
greet("Bob"); // 输出: Greetings, Bob!

3.2 参数与返回值

函数可以接收参数,这些参数作为函数内部操作的数据来源。同时,函数还可以通过return语句返回结果,传递计算后的值给调用者。

function add(a, b) {return a + b;
}let sum = add(3, 5); 

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

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

相关文章

代理服务

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在爬取网页的过程中,经常会出现不久前可以爬取的网页现在无法爬取了,这是因为您的IP被爬取网站的服务器所屏蔽了。此时代理服…

【Linux】Linux环境基础开发工具_6

文章目录 四、Linux环境基础开发工具gdb 未完待续 四、Linux环境基础开发工具 gdb 我们已经可以写代码了,也能够执行代码了,但是代码错了该如何调试呢?Linux中可以使用 gdb 工具进行调试。 我们写一个简单的程序: 但是我们尝试…

靠这10个神级搜书网站,实现你电子书自由(含有声书资源)!

2024搜书利器大盘点,让你轻松找到心仪的电子书,你想要的都有!竟然还有有声书!速度收藏,这一次,让你实现电子书自由! 阿星今天又来给你们送大礼了!这次不是别的,是搜书网…

人工智能入门学习教程分享

目录 1.首先安装python,官网地址:Download Python | Python.org,进入网址,点击Windows链接 2.下载完成之后,进行傻瓜式安装,如果不选安装路径,默认会安装到C:\Users\Administrator\AppData\Local\Programs\Python\Python38目录下。 3.配置python环境变量,即把python的…

数据结构:手撕代码——顺序表

目录 1.线性表 2.顺序表 2.1顺序表的概念 2.2动态顺序表实现 2.2-1 动态顺序表实现思路 2.2-2 动态顺序表的初始化 2.2-3动态顺序表的插入 检查空间 尾插 头插 中间插入 2.2-4 动态顺序表的删除 尾删 头删 中间删除 2.2. 5 动态顺序表查找与打印、销毁 查找 …

计算机哈佛架构、冯·诺依曼架构对比

哈佛架构和冯诺依曼架构是两种不同的计算机系统架构,它们在存储器组织方式上有着显著的区别。下面是它们的原理、优缺点的对比以及一些常见的 MCU 采用的架构: 哈佛架构: 原理:哈佛架构将指令存储器(程序存储器&#x…

Python连接Redis(简单连接、连接池连接、存取数据示例)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

QT漂亮QSS样式模仿流行VUE Element UI ,QSS漂亮大方美观样式 QSS样式 QTableWidget 漂亮样式QSS 快速开发QSS漂亮界面

在现代应用程序开发中,用户界面(UI)的设计与用户体验(UX)占据了至关重要的位置。Vue.js框架因其灵活性和丰富的生态系统而广受欢迎,其中Element UI作为一套为Vue设计的桌面端组件库,以其清晰的视…

27.设计注入功能界面

上一个内容:26.入口点注入项目搭建 使用 26.入口点注入项目搭建 它的代码为基础进行修改 效果图: 首先设置一些主窗口的边框属性 然后在IDD_PAGE_0里添加一个List Control 再给List Control设置调整大小类型属性 然后再给它添加一个变量 然后在拖入一个…

编译原理:语法分析之LR分析

自底向上分析方法(LR分析算法)bottom-up parsing 引言. 运算符 LR(0)LR(0)的项(构建有穷自动机的状态)LR(0)的项目闭包(构建有穷自动机的状态)GOTO函数有效项目LR(0)有穷自动机的构建 SLRLR(1)LALR 引言 L…

【成品设计】基于STM32的单相瞬时值反馈逆变器

《基于STM32的单相瞬时值反馈逆变器》 整体功能: 图13 软件框图 如图13所示,由于本设计中需要通过定时器中断执行一些程序,故首先对中断进行初始化。中断初始化以后即为对串口进行初始化,总共初始化了两个串口,第一个…

关于投标中的合理均价基准差径靶心法(KIMI回答)

投标中的合理靶心法到底是什么呢?用了KIMI来进行回答:

VMware Workerstation开启虚拟机后,产生乱码名称日志文件

问题情况 如下图所示,我的虚拟机版本是16.1.2版本,每次在启动虚拟机之后,D盘目录下都会产生一个如图下所示的乱码名称文件。同时,虚拟机文件目录也是杂乱不堪,没有按照一台虚拟机对应一个文件夹的形式存在。 问题处理…

windows10使用触控板、鼠标(magic trackpad)———附带BootCamp6驱动下载链接

文章目录 0 背景1 步骤1.1 下载1.2 解压1.3 安装驱动 参考 0 背景 最近在台式机(windows10系统)上使用mac设备,键盘magic keybord连上数据线就可以直接使用,但是触控板magic trackpad却不行,只有鼠标左键,…

【6】第一个Java程序:Hello World

一、引言 Java,作为一种广泛使用的编程语言,其强大的跨平台能力和丰富的库函数使其成为开发者的首选。对于初学者来说,编写并运行第一个Java程序是一个令人兴奋的时刻。本文将指导你使用Eclipse这一流行的集成开发环境(IDE&#…

解决CentOS 7无法识别ntfs的问题

解决CentOS 7无法识别ntfs的问题 方式一: Centos默认不支持ntfs文件格式,直接在Centos7上插U盘或移动硬盘无法识别,安装 ntfs-3g即可: # yum install epel-release -y # yum install ntfs-3g -y[rootbogon ~]# rpm -qa | grep nt…

个人关于Leecode 49题见解(保姆级)

题目: 49. 字母异位词分组 中等 相关标签 相关企业 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "…

Vector VH6501使用CANoe工程CANDisturbanceMain进行模拟干扰测试

系列文章目录 文章目录 系列文章目录一、文档介绍二、打开工程 CANDisturbanceMain三、模拟干扰3.1 CAN_H或CAN_L短接到地3.2 CAN_H和CAN_L短接3.3 CAN_H或CAN_L短接到电源3.4 CAN_H和CAN_L反接3.5 CAN_H和CAN_L之间的电阻/电容值调整一、文档介绍 本文档主要介绍如何使用CANo…

递归解析 LXML 树并避免重复进入某个节点

1、问题背景 我们在使用 LXML 库解析 MathML 表达式时,可能会遇到这样一个问题:在递归解析过程中,我们可能会重复进入同一个节点,导致解析结果不正确。例如,我们希望将以下 MathML 表达式解析为 Python 表达式&#x…

数据通信与网络(二)

如何构建网络协议 这些协议采用分层的结构,每层协议实现特定功能,同时也需要依靠低层协议所提供的服务。 网络协议可以理解为三部分组成: 1、语法:通信时双方交换数据和控制信息的格式,是对通信时采用的数据结构形式…