29-JavaScript基础语法(函数)

知识目标

  1. 理解函数的基本概念;
  2. 掌握函数的定义和调用;
  3. 理解函数参数和返回值及作用域;
  4. 掌握函数高阶用法。

1. 理解函数的基本概念

明确函数在 JavaScript 里是一段可重复使用的代码块,它能接收输入参数,执行特定任务,并返回结果。
明白函数在程序设计中的重要性,比如实现代码复用、模块化编程,提高代码的可维护性和可读性。

2. 掌握函数的定义和调用

2.1 函数声明

学会使用 function 关键字来定义函数,掌握函数名、参数列表和函数体的语法。

2.1.1 声明函数

function 函数名(参数1, 参数2, ...) {
// 函数体语句块;return 返回值;
}

函数由函数名、参数、函数体和返回值4部分组成。
函数名是调用函数时引用的名称。
函数参数位于括号内,可以是常量、变量或表达式,甚至是函数,也可以不需要参数。
函数体放在花括号{}内,{}中的语句是函数被调用时执行的语句。
函数执行完后可以有返回值,也可以没有返回值。可以返回一个值,也可以是数组,对象等。有返回值使用return语句,无返回值则省略return语句。

2.1.2 声明函数表达式

  1. 把函数表达式赋值给一个变量,格式如下:
var 变量名 = function 函数名(参数1, 参数2, ...) {// 函数体语句块;return 返回值;
}

变量名将作为函数名,这种方法的本质是把函数当作数据赋值给变量。

  1. 网页事件直接调用函数表达式
// 网页加载时触发
window.onload =  function 函数名(参数1, 参数2, ...) {// 函数体语句块;return 返回值;
}

2.2 函数的调用

学会如何调用已定义的函数,传递参数并接收返回值。

函数名(传递给函数的参数1, 传递给函数的参数2,...); 
// 例如:
const result = greet('John');
console.log(result);

3. 理解函数参数和返回值及作用域

3.1 函数参数

函数括号里的即为参数,函数定义时为形式参数,函数调用时为实际参数。可以在声明函数时设置参数的默认值,这样如果调用函数未传参时会使用默认值。

3.2 函数返回值

  • 理解函数返回值的概念,知道如何使用 return 语句从函数中返回一个值。
  • 明白如果函数没有显式的 return 语句,默认返回 undefined。
    如下案例返回了值。
function calculateArea(radius) {return Math.PI * radius * radius;
}
const area = calculateArea(5);
console.log(area);

3.3 函数的作用域

变量的作用域是指可以访问该变量的代码区域。在JavaScript中,根据变量的作用范围,可分为全局变量和局部变量。
全局变量是指在整个HTML文档都可以使用的变量,通常指在函数体外定义的变量。在函数外部使用var、let或不使用var、let定义的变量都是全局变量。在函数内部不使用var、let定义的变量也是全局变量。
局部变量是只能在局部范围内使用的变量,通常是在函数体内定义的变量,因此只在该函数体内有效,其他函数无法访问。只有在函数内使用var、let定义的变量才是局部变量。

4. 函数高阶用法。

4.1 回调函数

回调函数,即把一个函数作为参数传递给另一个函数,在合适的时候调用。

function doSomething(callback) {console.log('Doing something...');callback();
}
function printMessage() {console.log('Message printed.');
}
doSomething(printMessage);

4.2 闭包函数

闭包是指有权访问另一个函数作用域中的变量的函数。

function outerFunction() {const outerVariable = 'I am from outer function';function innerFunction() {console.log(outerVariable);}return innerFunction;
}
const closure = outerFunction();
closure();

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

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

相关文章

AI答题pk机器人来袭

AI答题PK机器人是一种具备知识问答竞赛功能的人工智能程序。以下为您详细介绍: 一、实时对战:能在答题排位PK升级赛中,与用户进行1V1在线实时PK答题 。比如在一些知识竞赛类APP中,用户可匹配到AI机器人对手,在规定时…

PclSharp ——pcl的c#nuget包

简介: NuGet Gallery | PclSharp 1.8.1.20180820-beta07 下载.NET Framework 4.5.2 Developer Pack: 下载 .NET Framework 4.5.2 Developer Pack Offline Installer 离线安装nupkg: nupkg是visual studio 的NuGet Package的一个包文件 安…

【Unity笔记】Unity音视频播放监听器封装笔记:VideoPlayer + AudioSource事件触发与编辑器扩展

关键点 Unity VideoPlayer 播放结束事件Unity AudioSource 播放检测 Unity音视频播放监听器封装笔记:VideoPlayer AudioSource事件触发与编辑器扩展 在 Unity 的多媒体开发中,我们经常需要监听 VideoPlayer 或 AudioSource 的播放状态,以便…

WPF常用技巧汇总

主要用于记录工作中发现的一些问题和常见的解决方法。 此文会持续更新。 >abp new Evan.MyWpfApp -t wpf --old --framework .net8 1. 解决不同屏幕分辨率下的锯齿问题 UseLayoutRounding"True" <Grid UseLayoutRounding"True"><Border Mar…

分数线降低,25西电马克思主义学院(考研录取情况)

1、马克思主义学院各个方向 2、马克思主义学院近三年复试分数线对比 学长、学姐分析 由表可看出&#xff1a; 1、马克思主义理论25年相较于24年下降10分&#xff0c;为355分 3、25vs24推免/统招人数对比 学长、学姐分析 由表可看出&#xff1a; 1、 马克思主义学院25年共接…

【Linux网络】构建UDP服务器与字典翻译系统

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…

【项目管理】成本类计算 笔记

项目管理-相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff5e;-CSDN博客 &#xff08;一&#xff09;知识总览 项目管理知识域 知识点&#xff1a; &#xff08;项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域&#xff09; 对应&…

div(HTML标准元素)和view(微信小程序专用组件)的主要区别体

div&#xff08;HTML标准元素&#xff09;和view&#xff08;微信小程序专用组件&#xff09;的主要区别体现在以下方面&#xff1a; 一、应用场景与开发框架 ‌适用平台不同‌ div是HTML/CSS开发中通用的块级元素&#xff0c;用于Web页面布局‌&#xff1b;view是微信小程序专…

【C++软件实战问题排查经验分享】UI界面卡顿 | CPU占用高 | GDI对象泄漏 | 线程堵塞 系列问题排查总结

目录 1、UI界面卡顿问题排查 2、软件CPU占用高问题排查 3、UI界面显示异常&#xff08;GDI对象泄漏导致窗口绘制异常&#xff09;问题排查 4、软件线程堵塞&#xff08;包含线程死锁&#xff09;问题排查 5、最后 C软件异常排查从入门到精通系列教程&#xff08;核心精品专…

管理杂谈——采石矶大捷的传奇与启示

南宋抗金史上&#xff0c;岳飞与岳家军的铁血传奇家喻户晓&#xff0c;但另一位力挽狂澜的“文官战神”却常被忽视——他从未掌兵&#xff0c;却在南宋存亡之际整合溃军&#xff0c;以少胜多&#xff0c;缔造采石矶大捷。此人正是虞允文。一介书生何以扭转乾坤&#xff1f;他的…

动态规划-零钱兑换

332.零钱兑换 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c;返回 -1 。你可以认为每种硬币的数量是无…

SpringAI+DeepSeek大模型应用开发——4 对话机器人

目录​​​​​​​ ​​​​​​​​​​​​​​项目初始化 pom文件 配置模型 ChatClient 同步调用 流式调用 日志功能 对接前端 解决跨域 会话记忆功能 ChatMemory 添加会话记忆功能 会话历史 管理会话id 保存会话id 查询会话历史 完善会话记忆 定义可序列…

Java 关键字

本章列出了Java 语言的所有关键字和“类关键字的单词”。 “受限关键字”是指&#xff0c;它们旨在模块声明中是关键字&#xff0c;在其他情况下则是标识符。 “受限标识符”是指&#xff0c;除非用在某些特定位置&#xff0c;否则他们只是标识符。例如&#xff0c;var一般都…

AI重塑网络安全:机遇与威胁并存的“双刃剑”时代

一、引言 人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;正在深刻改变网络安全行业的格局。从ChatGPT生成钓鱼邮件到AI驱动的漏洞挖掘&#xff0c;从零信任架构的普及到安全大模型的实战应用&#xff0c;AI既是攻击者的“新武器”&#xff0c;也是防御者的“新…

网络原理——UDP

1、 与TCP的关键区别 特性UDPTCP连接方式无连接面向连接可靠性不可靠可靠数据顺序不保证顺序保证顺序传输速度更快相对较慢头部开销8字节20-60字节流量控制无有拥塞控制无有适用场景实时应用、广播/多播可靠性要求高的应用 2、UDP 报文结构 报文结构大致可以分为首部和载荷&a…

STM32——新建工程并使用寄存器以及库函数进行点灯

本文是根据江协科技提供的教学视频所写&#xff0c;旨在便于日后复习&#xff0c;同时供学习嵌入式的朋友们参考&#xff0c;文中涉及到的所有资料也均来源于江协科技&#xff08;资料下载&#xff09;。 新建工程并使用寄存器以及库函数进行点灯操作 新建工程步骤1.建立工程2.…

Unocss 类名基操, tailwindcss 类名

这里只列出 unocss 的可实现类名&#xff0c;tailwindcss 可以拿去试试用 1. 父元素移入&#xff0c;子元素改样式 <!-- 必须是 group 类名 --> <div class"group"><div class"group-hover:color-red">Text</div> </div>2…

深度学习入门(一)

一、简介 深度学习是机器学习领域新兴且关键的研究方向。机器学习重点在于让计算机从数据中挖掘规律以预测未知&#xff0c;而深度学习借助构建多层神经网络&#xff0c;自动学习数据的复杂特征&#xff0c;从而实现更精准的模式识别&#xff0c;在图像、语音等众多领域广泛应…

element-plus中,Steps 步骤条组件的使用

目录 一.基本使用 1.代码 2.效果展示 3.代码解读 二.案例&#xff1a;修改用户的密码 1.期望效果 2.代码 3.展示效果 结语 一.基本使用 1.代码 从官网复制如下代码&#xff1a; <template><div><el-stepsstyle"max-width: 600px":space&quo…

jax 备忘录

https://zhuanlan.zhihu.com/p/532504225 https://docs.jax.dev/en/latest/index.html