当前位置: 首页 > news >正文

JS基本小知识:函数

目录

函数的基本概念

函数的定义和调用

函数的定义

函数的调用

函数的参数和返回值

参数的作用域和生命周期

返回值的作用和使用场景

匿名函数和箭头函数

匿名函数


本文将介绍 JavaScript 中的一个知识点:函数。函数是 JavaScript 中非常重要的一个概念,它允许我们将一段具有特定功能的代码封装起来,以便在需要时可以重复使用。

函数的基本概念

在 JavaScript 中,函数是一种可重用的代码块,它可以接收输入参数并返回一个值。函数的使用可以提高代码的复用性和可读性。

函数的基本结构如下: 

function functionName(parameters) {HTML// 函数体
}

其中,function 是一个关键字,表示定义一个函数;functionName 是函数的名称,用于调用函数;parameters 是函数的参数列表,用于接收外部传入的值。

函数的定义和调用

函数的定义

函数的定义包括函数名、参数列表和函数体。例如,定义一个求和函数:

function add(a, b) {return a + b;
}

在这个例子中,add 是函数名,ab 是参数列表,return a + b; 是函数体。

函数的调用

函数的调用是指在程序中使用函数名加括号的方式执行函数。例如,调用上面定义的求和函数:

var result = add(1, 2); // result = 3
console.log(result); // 输出 3

在这个例子中,我们通过 add(1, 2) 的方式调用了 add 函数,并将结果赋值给了变量 result。然后,我们使用 console.log() 方法输出了结果。

函数的参数和返回值

参数的作用域和生命周期

在 JavaScript 中,函数的参数具有局部作用域和生命周期。这意味着在函数内部声明的参数只在函数内部有效,而在函数外部无法访问。同时,当函数执行完毕后,参数的内存空间会被释放。

例如:

function add(a, b) {var sum = a + b; // sum 只在 add 函数内部有效
}
console.log(sum); // 报错:sum is not defined

在这个例子中,我们在 add 函数内部声明了一个变量 sum,并在函数外部尝试访问它。由于 sum 只在 add 函数内部有效,因此在函数外部访问它会报错。

返回值的作用和使用场景

函数可以通过 return 语句返回一个值。返回值可以是任意类型的数据,包括数字、字符串、对象等。返回值的作用是将函数执行的结果传递给外部调用者。

例如:

function getMax(a, b) {return a > b ? a : b; // 如果 a > b,则返回 a;否则返回 b。
}
var max = getMax(3, 5); // max = 5
console.log(max); // 输出 5

在这个例子中,我们定义了一个 getMax 函数,用于比较两个数的大小并返回较大的数。通过 return a > b ? a : b; 语句实现了这个功能。然后,我们通过 getMax(3, 5) 的方式调用了 getMax 函数,并将结果赋值给了变量 max。最后,我们使用 console.log() 方法输出了结果。

匿名函数和箭头函数

匿名函数

匿名函数是指没有名称的函数。匿名函数通常用于临时性的、不需要重复使用的代码块。匿名函数的定义和使用方式与普通函数类似,只是没有指定函数名。例如:

var add = function(a, b) { // 匿名函数的定义和赋值给变量 addreturn a + b; // 匿名函数的返回值表达式
}; // add = function(a, b) {...}(匿名函数)的注释说明(可选)
var result = add(1, 2); // result = 3(匿名函数的调用)
console.log(result); // 输出 3(匿名函数的返回值)

相关文章:

JS基本小知识:函数

目录 函数的基本概念 函数的定义和调用 函数的定义 函数的调用 函数的参数和返回值 参数的作用域和生命周期 返回值的作用和使用场景 匿名函数和箭头函数 匿名函数 本文将介绍 JavaScript 中的一个知识点:函数。函数是 JavaScript 中非常重要的一个概念&am…...

在Windows下Edge浏览器OA发起流程问题

在Edge浏览器中发起流程 如上图所示,不能正常打开Excel,自动将Excel表格转为了PDF 怎么处理?还得使用IE浏览器来访问,但打开IE后又自动跳转到Edge,根本就不给使用,在Edge下使用IE模式也解决不了这个问题。…...

2020年亚太杯APMCM数学建模大赛A题激光标记舱口轮廓生成求解全过程文档及程序

2020年亚太杯APMCM数学建模大赛 A题 激光标记舱口轮廓生成 原题再现: 激光是20中的一项重要发明世纪,它被称为“最锋利的刀”、“最精确的尺子”和“最不寻常的光”。 激光已越来越多地应用于工业加工, 其中可以是就业在各种加工业务例如作…...

【单元测试】--工具与环境

一、单元测试工具概览 1.1 JUnit JUnit 是一个广泛用于 Java 程序开发的开源测试框架。它是单元测试的标准工具之一,用于编写和运行测试用例,以确保 Java 程序的各个组件按预期工作。以下是一些关键特点和概念,来介绍 JUnit: 注…...

基于Java的汽车维修预约管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…...

vscode调试container(进行rocksdb调试)+vscode比较git项目不同分支和fork的哪个分支

vscode调试container(进行rocksdb调试) 参考链接: https://blog.csdn.net/qq_29809823/article/details/128445308#t5 https://blog.csdn.net/qq_29809823/article/details/121978762#t7 使用vscode中的插件dev containners->点击左侧的…...

[python-大语言模型]从浅到深一系列学习笔记记录

整体学习路径参照:点这里 python-机器学习-深度学习-大语言模型-数据开发 面向开发者的LLM入门提示原则 面向开发者的LLM入门 学习链接: github地址:https://github.com/datawhalechina/prompt-engineering-for-developers 在线阅读地址&…...

Android 指定有线网或Wifi进行网络请求

Android 指定有线网或Wifi进行网络请求 文章目录 Android 指定有线网或Wifi进行网络请求一、前言:二、指定网络通讯测试1、 窗口命令 ping -I 网络节点 IP2、Java 代码指定特定网络通讯 三、指定特定网络的demo app 开发1、效果图:2、实际测试结果说明&a…...

消除过期的对象引用

Java虽然有自己的垃圾回收机制,但是并没有那么的智能,对于被引用的对象,就算我们已经不在使用它了,但是Java的回收机制是不会回收它们的,人们称之为“内存泄漏”。 以下为三种不同的内存泄漏场景,极其优化方案 1、只要类自己管理内存,就该警惕内存泄漏问题 例如Stack…...

【Shell】环境变量 自定义变量 特殊变量

Shell变量:环境变量 目标 1、理解什么是系统环境变量? 2、掌握常用的系统环境变量都有哪些? Shell变量的介绍 变量用于存储管理临时的数据, 这些数据都是在运行内存中的. 变量类型 系统环境变量 自定义变量 特殊符号变量 系统环境变…...

Maven 打包 jar、war 包配置

1、导出 jar 包配置 <build><finalName>weaver-customerservice-distribution-component</finalName><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></inc…...

感悟:一个小小的摄像头APP,也解决了很多BUG

本来以为&#xff0c;简单的测试一下就行了&#xff0c;应该没有几个BUG。应该是比较轻松的。 然而现实是每天干活时&#xff0c;都能发现几个BUG。这BUG不解决还不行。六石管理学告诉我们四大容易&#xff1a;说容易&#xff0c;看容易&#xff0c;看别人容易&#xff0c;会了…...

顺序表第三节(通讯录基础版)

目录 可以先看一遍第二节在看这个 顺序表&#xff08;第二节&#xff09;实现和解析-CSDN博客 1.顺序表的头文件 2.初始化通讯录 3.添加通讯录 特殊&#xff1a;查找对应姓名的通讯录的序号 4.删除通讯录 5.展示通讯录 6.查找通讯录 7.修改通讯录 8.销毁通讯…...

数字ID和字符串ID互相转化

对于想隐藏真实id的需求&#xff0c;比如想加密userId等 使用示例&#xff1a; * 不指定长度* AlphaIDCustom(12354&#xff09;&#xff1b; //会将数字转换为字母。* AlphaIDCustom(PpQXn7COf,true&#xff09;&#xff1b;//会将字母ID转换为对应的数字。* 指定长度* Alpha…...

「Qt中文教程指南」如何创建基于Qt Widget的应用程序(三)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 本文描述了如何使用…...

Django CSRF Bypass

自存用 Django CSRF Bypass (CVE-2016-7401) 漏洞分析...

微信小程序 —— 会议OA项目首页布局与Mock数据交互

14天阅读挑战赛如果世界上有奇迹&#xff0c;那一定是努力的另一个名字。 目录 一、小程序布局 1.1 Flex布局 1.2 Flex属性 二、OA会议首页搭建 2.1 首页底部菜单 2.2 创建后端结口 2.3 Mock模拟数据 2.4 首页轮播图搭建 2.5 首页内容搭建 一、小程序布局 1.1 Flex布…...

机器学习-K-近邻(KNN)算法

目录 一 . K-近邻算法&#xff08;KNN&#xff09;概述 二、KNN算法实现 三、 MATLAB实现 四、 实战 一 . K-近邻算法&#xff08;KNN&#xff09;概述 K-近邻算法&#xff08;KNN&#xff09;是一种基本的分类算法&#xff0c;它通过计算数据点之间的距离来进行分类。在…...

shell_38.Linux读取脚本名

读取脚本名 (1)示例 $ cat positional0.sh #!/bin/bash # Handling the $0 command-line parameter # echo This script name is $0. exit $ $ bash positional0.sh This script name is positional0.sh. $ (2)如果使用另一个命令来运行 shell 脚本&#xff0c;则命令…...

面试题-React(十七):如何使用RTK进行状态管理

Redux Toolkit&#xff08;RTK&#xff09; 是一个强大的工具集&#xff0c;旨在简化和改进Redux的使用。它提供了一组工具和约定&#xff0c;使Redux的配置和编写更加直观和高效。 一、Redux Toolkit简介 Redux Toolkit是一个由Redux官方团队开发和维护的库&#xff0c;旨在…...

从约束到自由:探索代码质量守护工具的设计与实战

1. 项目概述&#xff1a;从“nono”到“always-further”的代码哲学最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“always-further/nono”。乍一看这个标题&#xff0c;可能会让人有点摸不着头脑。“nono”是什么&#xff1f;是某种新的编程语言缩写&#xff0c;还是一…...

第10篇 | 算力真正的瓶颈:揭开800G狂飙与空芯光纤的物理突围

《传送网:承载一切的“光之基石”》 第 10/12 篇 凌晨三点,某大型云服务商的网络NO...

Go 的 maps.Copy:复制个 Map,居然也能又这么多坑

以前复制 Map 要写 for 循环&#xff0c;现在一行搞定。但别高兴太早&#xff0c;踩坑姿势不对&#xff0c;照样翻车&#xff5e;&#x1f914; 为什么需要 maps.Copy&#xff1f; 在 Go 1.21 之前&#xff0c;复制一个 Map 的"标准姿势"是这样的&#xff1a; // &am…...

C++:模板精讲

泛型编程 当我们实现一个交换函数&#xff0c;想要实现不同类型的交换&#xff0c;可以使用函数重载&#xff1a; #include<iostream>using namespace std;void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(char& …...

DimOS:AI原生机器人操作系统入门与实践指南

1. 项目概述&#xff1a;重新定义机器人操作系统如果你在过去几年里折腾过机器人开发&#xff0c;大概率绕不开ROS&#xff08;Robot Operating System&#xff09;。从ROS 1到ROS 2&#xff0c;它确实为机器人软件模块化、通信标准化立下了汗马功劳。但说实话&#xff0c;有多…...

Optuna自动化调参:提升Scikit-learn模型性能的实战指南

1. 项目概述在机器学习项目中&#xff0c;模型调参往往是决定最终性能的关键环节。传统的手动网格搜索不仅耗时费力&#xff0c;还容易陷入局部最优。Optuna作为一款专为超参数优化设计的框架&#xff0c;通过智能搜索算法能够高效找到最优参数组合。本文将详细解析如何利用Opt…...

梯度提升算法家族:Scikit-Learn、XGBoost、LightGBM与CatBoost对比

1. 梯度提升算法家族概览梯度提升&#xff08;Gradient Boosting&#xff09;作为集成学习的代表性方法&#xff0c;通过迭代式地训练弱学习器并组合其预测结果&#xff0c;在各类机器学习任务中展现出卓越性能。当前主流实现包含四大技术流派&#xff1a;Scikit-Learn的Gradie…...

OceanBase-Desktop-Setup-1.6.0.exe

OceanBase-Desktop 安装 CPU虚拟化未启用。 当前状态: False 请在BIOS设置中启用虚拟化后重试。 请参考以下步骤手动启用虚拟化: https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002866370 确定...

后端转智能体开发有多香 核心技能无缝衔接

文章目录前言一、别再被忽悠了&#xff01;智能体开发&#xff0c;根本不是算法岗的专利二、后端转智能体有多香&#xff1f;这6大核心技能&#xff0c;直接无缝衔接2.1 接口调用与封装能力&#xff1a;智能体开发的基本功&#xff0c;你早就玩透了2.2 业务逻辑与流程编排能力&…...

【超详细】2026年Hermes Agent/OpenClaw腾讯云喂饭级10分钟部署步骤

【超详细】2026年Hermes Agent/OpenClaw腾讯云喂饭级10分钟部署步骤。OpenClaw&#xff08;前身为Clawdbot/Moltbot&#xff09;作为开源、本地优先的AI助理框架&#xff0c;凭借724小时在线响应、多任务自动化执行、跨平台协同等核心能力&#xff0c;成为个人办公与轻量团队协…...