JavaScript 基础 - 7

  关于JS函数部分的学习和一个案例的练习

1 函数封装

抽取相同部分代码封装

优点

  • 提高代码复用性:封装好的函数可以在多个地方被重复调用,避免了重复编写相同的代码。例如,编写一个计算两个数之和的函数,在多个不同的计算场景中都可以调用这个函数。
  • 增强代码可维护性:当函数的功能需要修改或扩展时,只需要在函数内部进行修改,而不需要在所有调用该函数的地方都进行修改。比如,要修改计算两个数之和的逻辑,只需要在封装的函数内部修改,不会影响到其他调用该函数的代码。
  • 便于代码阅读和理解:通过函数的命名可以清晰地表达其功能,使代码的可读性更高。其他人在阅读代码时,只需要看函数名就能大致了解其功能,而不需要去查看函数内部的具体实现。

原则

  • 单一职责原则:每个函数应该只负责一项特定的功能,功能要明确、简洁。比如,一个函数只负责计算平均值,另一个函数只负责数据的排序,这样可以避免函数功能过于复杂,提高代码的可维护性和可读性。
  • 高内聚低耦合:函数内部的代码应该紧密围绕其核心功能,内部的各个部分之间有很强的关联性;同时,函数与外部的其他代码之间的耦合度要低,尽量减少对外部变量和函数的依赖。

2 函数使用

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width= , initial-scale=1.0"><title>Document</title>
</head>
<style>span{display: inline-block;width:fit-content;height:fit-content;text-align: center;line-height: 50px;border: 1px solid #000;margin-right: 10px;}
</style>
<body><script>// 函数声明function sheet99(){for(let i = 1; i <= 9; i++){for(let j = 1; j <= i; j++){document.write('<span>'+ i +'×'+ j +'='+ (i*j) +'</span>');}document.write('<br>')}}// 函数调用sheet99();</script></body>
</html>

3 函数传参

语法 function 函数名(参数列表) 参数逗号隔开 参数默认值 getsum(a = 0,b = 0)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>function sum(n){var sum = 0;for(var i = 1; i <= n; i++){sum += i;}return sum;}console.log(sum(10));</script>
</body>
</html>

4 函数返回值

根据需求设置函数返回值


5 作用域

对于一个名称的可用范围 限定这个名字的代码可用范围就是作用域

提高了代码的局部性 增强了程序的可靠性 减少了名字冲突

全局作用域 局部作用域


6 匿名函数 

function () {} 没有名字的函数 无法直接使用 想要使用有两种方式

6.1 函数表达式

将匿名函数赋值一个变量 通过变量名称调用 使用前必须先声明函数表达式

 let fn =function(){}

6.2 立即执行函数 

立刻执行 不需要调用 用于避免全局变量的污染

立刻执行函数后必须加; 

(function(形参){})(实参);
(function(){}())

7 案例练习

 需求:完成一个用户输入秒数 自动转换为时分的程序

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
<script>// var time = +prompt("请输入秒数");// var hour = parseInt(time / 3600);// var minute = parseInt(time % 3600 / 60);// var second = time % 60;// alert(hour + "时" + minute + "分" + second + "秒");(function(time){var hour = parseInt(time / 3600);var minute = parseInt(time % 3600 / 60);var second = time % 60;alert(hour + "时" + minute + "分" + second + "秒");})(prompt("请输入秒数"));</script>
</html>

学习时间 2025.01.22

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

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

相关文章

详解u3d之AssetBundle

一.AssetBundle的概念 “AssetBundle”可以指两种不同但相关的东西。 1.1 AssetBundle指的是u3d在磁盘上生成的存放资源的目录 目录包含两种类型文件(下文简称AB包)&#xff1a; 一个序列化文件&#xff0c;其中包含分解为各个对象并写入此单个文件的资源。资源文件&#x…

微信登录模块封装

文章目录 1.资质申请2.combinations-wx-login-starter1.目录结构2.pom.xml 引入okhttp依赖3.WxLoginProperties.java 属性配置4.WxLoginUtil.java 后端通过 code 获取 access_token的工具类5.WxLoginAutoConfiguration.java 自动配置类6.spring.factories 激活自动配置类 3.com…

DeepSeek 介绍及对外国的影响

DeepSeek 简介 DeepSeek&#xff08;深度求索&#xff09;是一家专注实现 AGI&#xff08;人工通用智能&#xff09;的中国科技公司&#xff0c;2023 年成立&#xff0c;总部位于杭州&#xff0c;在北京设有研发中心。与多数聚焦具体应用&#xff08;如人脸识别、语音助手&…

MySQL数据库(二)- SQL

目录 ​编辑 一 DDL (一 数据库操作 1 查询-数据库&#xff08;所有/当前&#xff09; 2 创建-数据库 3 删除-数据库 4 使用-数据库 (二 表操作 1 创建-表结构 2 查询-所有表结构名称 3 查询-表结构内容 4 查询-建表语句 5 添加-字段名数据类型 6 修改-字段数据类…

ARM嵌入式学习--第十天(UART)

--UART介绍 UART(Universal Asynchonous Receiver and Transmitter)通用异步接收器&#xff0c;是一种通用串行数据总线&#xff0c;用于异步通信。该总线双向通信&#xff0c;可以实现全双工传输和接收。在嵌入式设计中&#xff0c;UART用来与PC进行通信&#xff0c;包括与监控…

面试题-消失的数字-异或

消失的数字 数组nums包含从0到n的所有整数&#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在 O(n) 时间内完成吗&#xff1f; 示例&#xff1a; 输入&#xff1a;[3,0,1] 输出&#xff1a;2 int missingNumber(int* nums, int numsSize) {}分析 本题对…

数据结构与算法之栈: LeetCode 1685. 有序数组中差绝对值之和 (Ts版)

有序数组中差绝对值之和 https://leetcode.cn/problems/sum-of-absolute-differences-in-a-sorted-array/description/ 描述 给你一个 非递减 有序整数数组 nums 请你建立并返回一个整数数组 result&#xff0c;它跟 nums 长度相同&#xff0c;且result[i] 等于 nums[i] 与数…

笔试-排列组合

应用 一个长度为[1, 50]、元素都是字符串的非空数组&#xff0c;每个字符串的长度为[1, 30]&#xff0c;代表非负整数&#xff0c;元素可以以“0”开头。例如&#xff1a;[“13”, “045”&#xff0c;“09”&#xff0c;“56”]。 将所有字符串排列组合&#xff0c;拼起来组成…

Python3 OS模块中的文件/目录方法说明十七

一. 简介 前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。 本文继续来学习 OS 模块中文件、目录的操作方法&#xff1a;os.walk() 方法、os.write()方法 二. Python3 OS模块中的文件/目录方法 1. os.walk() 方法 os.walk() 方法用于生成目录树中的文件名&a…

[Java]抽象类

1. 什么是抽象类&#xff1f; 1.1 定义&#xff1a; 抽象类是一个不能实例化的类&#xff0c;它是用来作为其他类的基类的。抽象类可以包含抽象方法和非抽象方法。抽象方法没有方法体&#xff0c;子类必须重写这些方法并提供具体的实现。抽象类可以有构造方法、成员变量、静态…

css三角图标

案例三角&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

跨越通信障碍:深入了解ZeroMQ的魅力

在复杂的分布式系统开发中&#xff0c;进程间通信就像一座桥梁&#xff0c;连接着各个独立运行的进程&#xff0c;让它们能够协同工作。然而&#xff0c;传统的通信方式往往伴随着复杂的设置、高昂的性能开销以及有限的灵活性&#xff0c;成为了开发者们前进道路上的 “绊脚石”…

深入解析 COUNT(DISTINCT) OVER(ORDER BY):原理、问题与高效替代方案

目录 一、累计去重需求场景 二、COUNT(DISTINCT) OVER(ORDER BY) 语法解析 2.1 基础语法 2.2 执行原理 三、三大核心问题分析

线性数据结构:单向链表

放弃眼高手低&#xff0c;你真正投入学习&#xff0c;会因为找到一个新方法产生成就感&#xff0c;学习不仅是片面的记单词、学高数......只要是提升自己的过程&#xff0c;探索到了未知&#xff0c;就是学习。 目录 一.链表的理解 二.链表的分类&#xff08;重点理解&#xf…

基于PyQt5打造的实用工具——PDF文件加图片水印,可调大小位置,可批量处理!

01 项目简介 &#xff08;1&#xff09;项目背景 随着PDF文件在信息交流中的广泛应用&#xff0c;用户对图片水印的添加提出了更高要求&#xff0c;既要美观&#xff0c;又需高效处理批量文件。现有工具难以实现精确调整和快速批量操作&#xff0c;操作繁琐且效果不理想。本项…

MCU内部ADC模块误差如何校准

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时&#xff0c;也能帮助其他需要参考的朋友。如有谬误&#xff0c;欢迎大家进行指正。 一、ADC误差校准引言 MCU 片内 ADC 模块的误差总包括了 5 个静态参数 (静态失调&#xff0c;增益误差&#xff0c;微分非线性…

嵌入式硬件篇---CPUGPUTPU

文章目录 第一部分&#xff1a;处理器CPU&#xff08;中央处理器&#xff09;1.通用性2.核心数3.缓存4.指令集5.功耗和发热 GPU&#xff08;图形处理器&#xff09;1.并行处理2.核心数量3.内存带宽4.专门的应用 TPU&#xff08;张量处理单元&#xff09;1.为深度学习定制2.低精…

03-机器学习-数据获取

一、流行机器学习数据集 主流机器学习数据集汇总 数据集名称描述来源MNIST手写数字图像数据集&#xff0c;由美国人口普查局员工书写。MNIST官网ImageNet包含数百万张图像&#xff0c;用于图像分类和目标检测。ImageNet官网AudioSet包含YouTube音频片段&#xff0c;用于声音分…

doris:STRUCT

STRUCT<field_name:field_type [COMMENT comment_string], ... > 表示由多个 Field 组成的结构体&#xff0c;也可被理解为多个列的集合。 不能作为 Key 使用&#xff0c;目前 STRUCT 仅支持在 Duplicate 模型的表中使用。一个 Struct 中的 Field 的名字和数量固定&…

一次端口监听正常,tcpdump无法监听到指定端口报文问题分析

tcpdump命令&#xff1a; sudo tcpdump -i ens2f0 port 6471 -XXnnvvv 下面是各个部分的详细解释&#xff1a; 1.tcpdump: 这是用于捕获和分析网络数据包的命令行工具。 2.-i ens2f0: 指定监听的网络接口。ens2f0 表示本地网卡&#xff09;&#xff0c;即计算机该指定网络接口捕…