2022年8月31日:面向初学者的 web 开发--使用 JavaScript 中的函数创建模块化代码(没看懂)

2019年双十一倒计时JS代码 2019年双十一倒计时JS代码 离2019年双十一还有: 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Mark... 阅读详情

函数是要创建的任何应用程序的构建基块。 利用函数,可以创建命名的、可重用的代码节,以帮助使其更易于阅读和维护。 此模块介绍函数的核心概念。

简介

当我们考虑编写代码时,我们总是要确保代码是可读的。 虽然这句话听起来有悖直觉,但代码的读取次数确实比写入次数要多得多。

开发人员工具箱中确保代码的可维护性的一个核心工具是函数。 从本质上来说,函数是可以按需运行的代码块。 此代码可能会执行任务(例如转到网站的其他部分)或计算值(如两个数字之和)。

函数概述

函数是编写代码的关键构建基块。 函数是可重用的代码行集合,可在程序中执行某些操作。

函数非常适合需要多次执行同一任务的情况。 可以将逻辑集中在一个位置,而不是在多个位置重复逻辑(这会使得以后难以更新代码)。 这样,每当需要再次执行操作时,就可以调用它。 甚至可以从其他函数调用函数!

同样重要的是能够命名函数。 尽管命名函数看似简单,但名称提供了记录代码节的快速方法。 可以将命名视为按钮上的标签。 

创建和调用函数

函数接受一些输入,然后返回通过某种方式转换输入的输出。

函数由三个不同的组件组成:

  • 函数主体是调用函数时运行的代码块。
  • 参数是传递给函数的输入的另一个名称。
  • 最后,还有一个返回值,即函数的输出。

编写函数时,参数和返回值是可选的。 

每当你想要调用该函数时,可以使用函数的名称,后跟一对括号 (())。 值得注意的是,你可以在决定调用函数之前或之后定义函数。 无论哪种方式,JavaScript 都将找到该函数,只要它在调用范围内。

最佳实践

创建函数时,请记住几个最佳做法:

  • 使用描述函数用途的描述性名称。 例如,名称 displayGreeting 可以清楚地表明函数的用途是显示问候语。 对于执行相同任务的函数而言,类似于 greet 的名称有点含糊不清。 它可能会显示问候语,但也可能执行不同的操作。

  • 使用 camelCasing 合并单词。 若要使用 camelCase 进行编写,请将变量或函数的第一个词保持为小写,并大写每个后续单词。 由于函数和变量名称不能包含空格,因此 camelCasing 使代码中的单词更易于阅读。 例如,displayGreeting 比 displaygreeting 更易于阅读。

  • 使函数集中于特定任务。 这样做不仅会使函数在整个程序中更易于重用,还可以更轻松地调试代码。 如果遇到函数未执行你想要执行的任务的问题,则你知道问题包含在该函数中。

  • 使用注释文本批注代码,并描述函数的作用。 为提高代码的可读性,请在注释中包含每个函数任务的简短说明。 可以通过键入一个双斜杠 (//),然后键入说明来创建注释。 开始新行时,注释结束。

函数参数

为了使函数可重用性更高,将经常需要向其中传递信息。 此类型的输入称为参数。 参数有时也称为自变量,是发送到函数的其他信息。

参数在函数的定义中列出,并包含在括号 (()) 中。 可以有多个以逗号分隔的参数,如下所示:

function name(param, param2, param3) {

}

默认值

可以通过添加更多参数,使函数更加灵活。设置值的方式与设置变量值的方式大致相同。

function displayGreeting(name, salutation='Hello') {
  console.log(`${salutation}, ${name}`);
}

调用函数时,可以决定是否为称呼设置一个值,如下所示:

displayGreeting('Christopher');
// displays "Hello, Christopher"

displayGreeting('Christopher', 'Hi');
// displays "Hi, Christopher"

返回值

如果函数应返回某些内容,则使用 return 关键字,通常后跟值或对要返回的内容的引用。 不过,也可以单独使用 return 来退出函数。

创建函数

创建示例页面

首先,在 Visual Studio Code 中创建一个新页面。

打开 Visual Studio Code 终端或命令窗口。

若要创建新目录并对其进行更改,请运行以下命令之一:

# Windows
md functions && cd functions

# macOS or Linux
mkdir functions && cd functions

若要在 Visual Studio Code 中打开新目录,请运行以下命令:

code .

在“资源管理器”窗格中,将鼠标悬停在“函数”上,然后选择“新建文件”图标。

添加代码以显示消息

现在可以添加代码以显示消息。

在 index.html 文件中,以下 HTML 代码来创建 HTML 文件的核心:

<!DOCTYPE html>
<html>
<head>
    <title>Message</title>
</head>
<body>
    <script>
        // TODO: Add hello code

        // TODO: Add setTimeout code

    </script>
</body>
</html>

在 index.html 文件中,在注释行 //TODO: Add hello code 下方,通过添加以下代码来创建一个函数。

函数采用一个名为 name 的参数,并返回一个字符串,其中显示“Hello”和提供该输入的人员的姓名:

// TODO: Add hello code
function getMessage(name) {
    return 'Hello, ' + name + '...';
}

在刚才添加的代码中的右大括号 (}) 下方,添加以下代码以获取消息,并使用 document.write 将其显示在网页上。

const message = getMessage('Ornella');
document.write(message);

选择“文件”>“保存”来保存文件。

查看页面

在 Visual Studio Code 中,通过选择 Ctrl+Shift+P (Windows) 或 Cmd+Shift+P (Mac) 打开“命令面板”。

 

在“命令面板”中,通过键入“Live Server”打开 Live Server,然后选择“Live Server: 使用 Live Server 打开”。

在浏览器中打开

 

完整代码

<!DOCTYPE html>
<html>
<head>
    <title>Message</title>
</head>
<body>
    <script>
        // TODO: Add hello code
        function getMessage(name) {
            return 'Hello, ' + name + '...';
        }
        const message = getMessage('Ornella');
        document.write(message);

        // TODO: Add setTimeout code

    </script>
</body>
</html>

匿名函数

可以通过使用函数名称并传入任何适当的参数来按需调用函数。

回调简介

从本质上来说,回调是将函数作为参数传递给另一个函数的方式。 此参数的行为方式与任何其他参数(如字符串或数字)的行为方式相同,不同之处在于它可以被调用,因为它是一个函数。

回调经常用于各种框架和库中,用于指示当某些事情发生或完成时要运行的代码。

使用回调

回调是一种常规函数,你可以像创建过去编写的任何函数一样创建回调。

setTimeout 回调是允许创建计时器的内置函数。 计时器完成后,它将调用作为第一个参数传入的函数。 第二个参数指示在调用函数之前要等待的毫秒数。

如果要设置 3 秒超时,并且代码在运行完成后显示“完成!”,你可以使用 setTimeout,如下所示:

// timer value is in milliseconds
setTimeout(displayDone, 3000);

匿名函数

匿名函数是没有名称的函数。 匿名函数的行为方式与常规函数相同,它们也是开发人员通常设置回调的方式。

setTimeout(
    function() { // anonymous function
        console.log('Done!');
    },
    3000 // 3000 milliseconds (3 seconds)
)

箭头函数

箭头函数或胖箭头函数是创建匿名函数的一种略有不同的方式。 箭头函数使用 => 运算符指示函数主体的开头。

setTimeout(
    () => { // anonymous function
        console.log('Done!');
    },
    3000 // 3000 milliseconds (3 seconds)
)

创建匿名函数

完整代码:

<!DOCTYPE html>
<html>
<head>
    <title>Message</title>
</head>
<body>
    <script>
        // TODO: Add hello code
        function getMessage(name) {
            return 'Hello, ' + name + '...';
        }
        const message = getMessage('Ornella');
        document.write(message);

        // TODO: Add setTimeout code
        setTimeout(
            () => { document.write('...Hello again!')},
            2000
        );
    </script>
</body>
</html>

  1. 返回到浏览器窗口。

    “...Hello again!”消息可能已经显示,因为 Live Server 已经刷新了窗口。

  2. 刷新浏览器窗口。 请注意,显示原始消息,然后在 2 秒后,该消息被替换为“...Hello again!”消息。

已使用匿名函数使消息在延迟后显示。

JavaScript中的组件调用方式 组件可以封装特定的功能,并提供简单的调用方式,使开发人员能够轻松地在应用程序中使用它们。以上介绍了几种常见的JavaScript组件调用方式,包括函数调用方式、对象调用方式和类调用方式。无论使用哪种方式,组件的调用都是通过执行函数、方法或对象来实现的,从而实现组件的功能。开发人员可以定义一个类,将组件的功能封装在类的方法中,并通过创建类的实例来调用组件。开发人员可以创建一个对象,将组件的属性和方法封装在其中,并通过对象的方法来调用组件。类封装了组件的功能,并通过创建类的实例。对象包含了组件的属性和方法。 阅读详情

相关推荐

【Web前端面试】葵花宝典(2022版本)——JS篇(上)

本篇文章主要写的是前端高频面试题JavaScript篇(上),下下一篇我会更新相关面试题。如果没有的话,下一篇预备更新 前端高频面试题JavaScript篇(下)误区:我们经常说 get 请求参数的大小存在限制,而 post 请求的参数大小是无限制的。 实际上 HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对 get 请求参数的限制 是来源与浏览器或 web 服务器,浏览器或 web 服务器限制了 url 的长度。..................

qq_49002903的博客 3504

用函数作为另外一个函数的参数

javascript use function as argument javascript passing function parameters javascript function as parameters of another function 给一个例子。 //returns the current hour function GetCurrentHour() {

刘利新西安 560

31、Ruby Web开发与代码风格指南

本文主要探讨了Ruby Web开发中的多个关键主题,包括Sinatra框架的模块化开发方法及其运行方式,Ruby与WebAssembly的结合与应用,以及Ruby代码风格的最佳实践。此外,还介绍了如何使用RuboCop进行代码风格检查和自动纠正,以提高代码质量和团队协作效率。通过这些内容的学习,可以提升Ruby开发者在Web应用开发和代码维护方面的能力。

Pepper的专栏 57

javascript(模块模式)

javascript Module(模块)模式 从javascript对象创建说起 说起Module(模块)模式,可能一些刚刚接触javascript的同学还是觉得比较陌生,但是相信大多数学习javascript的同学都知道javascript对象创建的方式。最熟悉的莫过于构造器方式创建对象。 Constructor(构造器)模式 基本Construcor(构造器) function C

word_si的博客 355

239号资源-simulink仿真:MATLAB/Simulink教程(PDF文档)-----已提供下载资源

电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.《《《《《《《《更多资源还请持续关注本专栏》》》》》》》《《《《《《《《更多资源还请持续关注本专栏》》》》》》》论文与完整源程序_电网论文源程序的博客-优快云博客。电网论文源程序-优快云博客。

LIANG674027206的博客 1076

VsCode+JLink+GCC替代Keil开发GD32程序-个人总结

对个人使用vscode+Jlink开发GD32程序做了总结,供需要者参考。

MyCollege1999的博客 2763

JavaScript模块化开发:CommonJS、AMD到ES模块

JavaScript模块化发展历程从早期的模块模式、CommonJS、AMD到现代ES模块,反映了Web开发复杂性不断提高的需求。如今,ES模块已成为JavaScript生态系统的标准部分,被现代浏览器和Node.js原生支持。代码组织:将功能分解为独立、可管理的块封装:隐藏实现细节,只暴露必要的接口依赖管理:明确模块间的依赖关系可重用性:模块可在不同项目中重复使用可维护性:独立模块易于测试和维护按需加载:支持懒加载和代码分割。

m0_62364592的博客 1082

搜索引擎——ElasticSearch汇总

汇总——ElasticSearch篇 全文检索 问题1:什么是全文检索? 基本概念:对**非结构化数据/结构化数据**先建立**索引**,再对索引进行搜索**文档**的过程叫做全文检索。 什么是非结构化与结构化数据? - 非结构化数据:没有固定的格式的数据(html,word,excel)---没有固定长度,字段约束,描述,散列数据 - 结构化数据:有固定的格式的数据(如:数据库数据)---有固定长度(varchar(50)),字段类型,描述修饰数据 搜索算法:顺序扫描法、倒排索引法 - 顺序

alonewolf_99的博客 1839

虽然写了不少前端代码,但是我真没搞懂什么是 JavaScript

本文回顾了 JavaScript 发展的历史,以及在各种浏览器和 Node.js 环境中,事实上标准分裂的现状,但是编译器有着化腐朽为神奇的功效,可以通过指定目标运行环境的标准,来让编译器弥平环境差异。所以,建议我们总是采用最新的 ECMAScript 标准来编写自己的代码,以获得更多语法上的支持,提升编程的体验。

Becomin' Charles 1256

Linux 命令行的艺术

Linux 命令行的艺术前言基础日常使用文件及数据处理系统调试单行脚本冷门但有用仅限 OS X 系统仅限 Windows 系统更多资源免责声明熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练...

AI天才研究院 9281

基于YOLOv11的无人机目标检测系统:实现drone、bird、aircraft多类别识别

采用改进的YOLOv11网络结构,平衡检测精度和速度融合VisDrone和UAVDT数据集,增强模型泛化能力设计多尺度特征融合模块,提升小目标检测性能开发直观的UI界面,便于实际部署和应用。

YOLO 323

2022需求最大的 8 种编程语言:Python第二,ta居榜首

从2021年10月到2022年11月(14个月),DevJobsScanner共发现了801K个工作机会,明确要求将 JavaScript或TypeScript作为编程语言,约占工作岗位总数的31%。例如,在2021年10月PHP的需求还只占总需求的约5%,但到2022年11月占比就已经接近10%,自C语言的首次发布至今已有50年的历史,距离后来出现C++已经过去了37年,C++最初的名字是"C with Classes"。的编程语言,主要是为了解决C++的一些弱点而创建的。作为一种通用语言,C#

马士兵教育 3万+

使用node-red网关读取modbus设备点表,并上传到市政低碳平台来统计数据

最近做了一个物联网项目,具体是这样的,利用node-red网关盒子,来采集Modbus设备的点表,然后将数据转换,封装,最终上传到市政的低碳平台。上一步封装了点表的数据,调用低碳平台还需要账号密码,建筑id,这些都是固定信息,所以我们单独提出来。上一步获取到了原始的点表数据,下一步就是将这些点表数据与在低碳平台创建的采集的对应起来,并且设置好分类。读取modbus的节点,会有两个输出,我是使用的第一个输出。msg.meters 是一个数组,里面的每一个元素都是一个点表,比如厨房用水,园区照明,

知无涯 947

【JavaScript】JavaScript中的时间函数

介绍JavaScript中的时间函数。

jiangwei0512的博客 923

python-pandapower电力系统潮流计算(算例8:ieee33节点潮流计算))

python-pandapower电力系统潮流计算(算例8:ieee33节点潮流计算))

总裁余(余登武)博客 5033

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

2022年编程语言热度排行榜来啦,快来看看你学习的语言排第几

一直以来,编程语言都是程序员非常关注的话题。年末将至,是否会有程序员发出疑问——“2022 年行业需求最大的编程语言,花落谁家?”从 2021 年 10 月到 2022 年 11 月,DevJobsScanner 分析了超过 1200 万个开发人员职位。从这 1200 万份工作中,DevJobsScanner 挑选了明确需要编程语言的工作岗位。现在,一起回顾 2022 年行业需求最大的 8 种编程语言。

veratata的博客 5391

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

前端食堂技术周刊第 65 期:2022 Vue 年终总结、2022 HTTP 状态、12 月登陆 Web 平台的新功能、Bun v0.4、JavaScript 框架之迈向 2023 年

- 2022 Vue 年终总结 - 2022 HTTP 状态 - 12 月登陆 Web 平台的新功能 - Bun v0.4 - JavaScript 框架之迈向 2023 年 - Web 开发资源

童欧巴的博客 427

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

2022 年需求最大的 8 种编程语言

摘要:本文中,将带你一起回顾 2022 年行业需求最大的 8 种编程语言。原文链接:https://www.devjobsscanner.com/blog/top-8-most-demanded-languages-in-2022/声明:本文为 优快云 翻译,未经允许禁止转载。作者 |Logan dev译者 | 朱珂欣 责编 | 梦依丹出品 | 优快云(ID:优快云news)一直以来,...

优快云资讯 5977

黑马JavaWeb开发跟学(二)Web前端开发JavaScript、Vue基础

黑马JavaWeb开发跟学(二)Web前端开发JavaScript基础

心向阳光的天域的博客 1529

【蓝桥杯web组】js

Documen object model 文档对象模型,是一种用于html和xml文档的编程接口,给文档提供可一种结构化的表示方法,可以修改文档的内容和结构DOM可以把网页和脚本语言以及其他编程语言联系起来Dom在开发中主要是用于操作元素(标签)为了保存数据并使用时数据,有些数据可以保存在页面,不需要数据库。设置一个属性和值(键值对)i++)//设置自定义属性,值为数组的下标顺序//循环给每一个div添加点击事件。

yucherryzixuan的博客 765

Formula.js vs Excel:日期函数差异及解决方案

Formula.js是一款强大的JavaScript库,实现了大多数Microsoft Excel公式函数,让开发者能够在Web应用中轻松使用Excel兼容的日期计算功能。本文将深入剖析Formula.js与Excel在日期函数处理上的核心差异,并提供实用的解决方案,帮助你避免常见的日期计算陷阱。 ## 📅 日期系统基础差异 Excel使用1900年日期系统,将1900年1月1日定义为序列号

gitblog_00333的博客 744

2022年需求最大8种编程语言!(详细解读)

2022年需求最大8种编程语言!(详细解读)

wzk4869的博客 6632

2020年8月10日31---Html知识介绍

''' ================================== cooding:utf-8 @Time :2020/8/11 21:09 @Author :henry @Email :yinpingwei@gmail.com @File :web_day1.py @Software:PyCharm =================================== ''' ''' selenium -- web网页自动化 -- 功能自动化 前端: 由html

henry_rhy的博客 660

JavaScript三种创建构造函数的方式

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>JS三种创建构造函数方式</title> 6 </head> 7 <body> 8 </...

weixin_33836874的博客 311
上一篇: Array类(C#)
下一篇: 2022年9月1日:在 Visual Studio Code 中使用 Git 版本控制工具(未完成)
DXB2021
博客等级 码龄5年 307粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值