JavaWeb(4)——HTML、CSS、JS 快速入门

一、JavaScript 数组

 数组筛选(查找,将原来数组中的某些数据去除)
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>// 重点案例let arr = [2, 0, 6, 1, 77, 9, 54, 3, 78, 7]// 1. 声明新的空的数组let newArr = []// 2. 遍历旧数组for (let i = 0; i < arr.length; i++) {if (arr[i] >= 10) {// 3. 满足条件 追加给新的数组newArr.push(arr[i])}}// 4. 输出新的数组console.log(newArr)</script>
</body></html>

数组筛选(查找,数组中的最大和最小值)
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>let arr = [2, 6, 1, 7, 400, 55, 88, 100]// max里面要存的是最大值let max = arr[0]// min 要存放的是最小值let min = arr[0]// 遍历数组for (let i = 1; i < arr.length; i++) {// 如果max 比 数组元素里面的值小,我们就需要把这元素赋值给 max// if (max < arr[i]) max = arr[i]max < arr[i] ? max = arr[i] : max// 如果min 比 数组元素大, 我们就需要把数组元素给min// if (min > arr[i]) {//   min = arr[i]// }min > arr[i] ? min = arr[i] : min}// 输出 maxconsole.log(`最大值是: ${max}`)console.log(`最小值是: ${min}`)</script>
</body>
</html>

数组修改(数组中每个元素末尾都加新元素)
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>// let arr = []// console.log(arr)// // console.log(arr[0])  // undefined// arr[0] = 1// arr[1] = 5// console.log(arr)let arr = ['pink', 'red', 'green']// 修改// arr[0] = 'hotpink'// console.log(arr)// 给所有的数组元素后面加个老师  修改for (let i = 0; i < arr.length; i++) {// console.log(arr[i])arr[i] = arr[i] + '老师'}console.log(arr)</script>
</body></html>

 数组修改(数组中每个元素开头都加新元素)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>let arr = ['pink', 'hotpink']// 新增  push 推末尾// console.log(arr.push('deeppink'))  // 3// arr.push('deeppinnk', 'linghtpink')// console.log(arr)// 开头追加arr.unshift('red')console.log(arr)</script>
</body></html>
 数组删除指定元素

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>let arr = ['red', 'green', 'blue']// console.log(arr.pop()) // blue// 1.pop() 删除最后一个元素// arr.pop()// arr.pop()// console.log(arr)// 2. shift() 删除第一个元素// arr.shift()// console.log(arr)// 3. splice 删除指定元素  splice(起始位置-索引号, 删除几个)arr.splice(1, 1)  // 是从索引号1的位置开始删, 只删除1个// arr.splice(1) // 从green 删除到最后console.log(arr)</script>
</body></html>
冒泡排序
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>// let arr = [5, 4, 3, 2, 1]let arr = [2, 4, 3, 5, 1]// for (let i = 0; i < arr.length - 1; i++) {//   for (let j = 0; j < arr.length - i - 1; j++) {//     // 开始交换 但是前提 第一个数大于第二个数才交换//     if (arr[j] > arr[j + 1]) {//       // 交换2个变量//       let temp = arr[j]//       arr[j] = arr[j + 1]//       arr[j + 1] = temp//     }//   }// }// arr.sort()  // 排序// sort 升序排列// arr.sort(function (a, b) {//   return a - b// })// sort() 降序arr.sort(function (a, b) {return b - a})console.log(arr)// let num1 = 10// let num2 = 20// let temp = num1// num1 = num2// num2 = temp </script>
</body></html>

这段代码实现了一种冒泡排序算法:

  1. 首先,定义了一个数组 arr = [2, 4, 3, 5, 1],其中包含了待排序的元素。

  2. 然后,调用了数组的 sort() 方法来排序数组中的元素。sort() 方法接受一个回调函数作为参数,该回调函数用于指定排序的规则。

  3. 回调函数通过比较两个元素 a 和 b 的大小来确定它们在排序结果中的顺序。在这里,回调函数使用了一个简单的比较规则,即 b - a。如果 b 大于 a,则返回一个正数,表示 b 应该排在 a 前面;如果 b 小于 a,则返回一个负数,表示 b 应该排在 a 后面;如果 b 等于 a,则返回 0,表示它们的相对顺序不变。

  4. 冒泡排序的核心思想是,重复地遍历数组,每次比较相邻的两个元素,如果它们的相对顺序不符合要求(按照回调函数的规则),则交换它们的位置,直到整个数组按照要求排好序。

  5. 最后,将排序后的数组输出到控制台使用 console.log() 方法打印出来。在这个例子中,输出结果是 [5, 4, 3, 2, 1],表示数组按照降序排列。

 根据数据生成柱形图 
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}.box {display: flex;width: 700px;height: 300px;border-left: 1px solid pink;border-bottom: 1px solid pink;margin: 50px auto;justify-content: space-around;align-items: flex-end;text-align: center;}.box>div {display: flex;width: 50px;background-color: pink;flex-direction: column;justify-content: space-between;}.box div span {margin-top: -20px;}.box div h4 {margin-bottom: -35px;width: 70px;margin-left: -10px;}</style>
</head><body><script>// 1. 四次弹框效果// 声明一个新的数组let arr = []for (let i = 1; i <= 4; i++) {// let num = prompt(`请输入第${i}季度的数据:`)// arr.push(num)arr.push(prompt(`请输入第${i}季度的数据:`))// push记得加小括号,不是等号赋值的形式}// console.log(arr)  ['123','135','345','234']// 盒子开头document.write(` <div class="box">`)// 盒子中间 利用循环的形式  跟数组有关系for (let i = 0; i < arr.length; i++) {document.write(`<div style="height: ${arr[i]}px;"><span>${arr[i]}</span><h4>第${i + 1}季度</h4></div>          `)}// 盒子结尾document.write(` </div>`)</script>
</body></html>

        首先,在 HTML 的 <head> 标签中定义了一些 CSS 样式,用于布局和美化页面。这些样式设置了一个名为 "box" 的容器,并定义了容器内部每个柱状图的样式。

* 选择器:

设置所有元素的 margin 和 padding 属性为 0,取消默认的边距和内边距。

.box 类选择器:定义一个名为 "box" 的容器的样式。具体含义如下:

display: flex;:将容器设置为弹性布局,使其内部元素可以灵活排列。
width: 700px;:设置容器的宽度为 700 像素。
height: 300px;:设置容器的高度为 300 像素。
border-left: 1px solid pink;:设置容器的左边框为粉色实线。
border-bottom: 1px solid pink;:设置容器的底边框为粉色实线。
margin: 50px auto;:将容器水平居中,并在上下方向上有 50px 的外边距。
justify-content: space-around;:在容器内部沿主轴方向(水平方向)均匀分布元素,两端留有空白间距。
align-items: flex-end;:在容器内部沿交叉轴方向(垂直方向)将元素对齐到底部。
text-align: center;:将容器内元素的文本内容居中对齐。

.box>div 是一个 CSS 选择器,表示选择 .box 容器内的直接子元素为 <div> 的元素。具体含义是选择容器 .box 内的直接子级 <div> 元素,并对其应用相应的样式规则。

在给定的样式代码中,.box>div 选择器被用来定义了 .box 容器内的子级 <div> 元素的样式。通过这个选择器可以对柱状图中的每个柱子进行样式设置,包括宽度、背景颜色等。

.box>div 类选择器:定义容器内 <div> 元素的样式。具体含义如下:

display: flex;:将 <div> 元素设置为弹性布局,使其内部元素可以灵活排列。
width: 50px;:设置 <div> 元素的宽度为 50 像素。
background-color: pink;:设置 <div> 元素的背景颜色为粉色。
.box div span 选择器:定义 <div> 元素内的 <span> 标签的样式。具体含义如下:

margin-top: -20px;:将 <span> 元素向上移动 20 像素,用于调整显示位置。
.box div h4 选择器:定义 <div> 元素内的 <h4> 标签的样式。具体含义如下:

margin-bottom: -35px;:将 <h4> 元素向上移动 35 像素,用于调整显示位置。
width: 70px;:设置 <h4> 元素的宽度为 70 像素。
margin-left: -10px;:将 <h4> 元素向左移动 10 像素,用于调整显示位置。

接下来,在 HTML 的 <body> 标签中,通过 JavaScript 代码实现了以下功能:
  1. 定义了一个空数组 arr,用于存储用户输入的四个季度的数据。

  2. 使用 for 循环遍历四次,每次弹出一个对话框(prompt),要求用户输入一个季度的数据,并将用户输入的数据添加到数组 arr 中。

  3. 使用 document.write() 方法输出 HTML 代码,开始构建包含柱状图的 <div> 容器。该容器的类名为 "box"。

  4. 使用 for 循环遍历数组 arr,在容器内部创建 <div> 元素来表示每个柱状图。根据用户输入的数据设置每个柱状图的高度(style="height: ${arr[i]}px;")。

  5. 在每个柱状图中,使用 <span> 标签显示对应季度的数据(${arr[i]}),使用 <h4> 标签显示季度的序号(第${i + 1}季度)。

  6. 最后,使用 document.write() 方法输出结束标记 </div>,完成整个柱状图的构建。

这段代码通过用户输入的数据动态生成了一个柱状图,并在页面上展示出来。每个柱状图的高度对应季度的数据值,通过这种方式可以直观地比较不同季度的数据大小。

二、JavaScript 函数

函数命名

 函数传参

 函数返回值

break结束的是循环,return结束的是函数 ,返回多个数据可以使用数组。

 

 函数作用域

作用域链:采取就近原则的方式来查找变量最终的值

匿名函数

 没有名字的函数, 无法直接使用。 使用方式:①  函数表达式   ;② 立即执行函数

 

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>// age = age + 1// 1. 用户输入let second = +prompt('请输入秒数:')// 2.封装函数function getTime(t) {// console.log(t)  // 总的秒数// 3. 转换// 小时:  h = parseInt(总秒数 / 60 / 60 % 24)// 分钟:  m = parseInt(总秒数 / 60 % 60)// 秒数: s = parseInt(总秒数 % 60) let h = parseInt(t / 60 / 60 % 24)let m = parseInt(t / 60 % 60)let s = parseInt(t % 60)h = h < 10 ? '0' + h : hm = m < 10 ? '0' + m : ms = s < 10 ? '0' + s : s// console.log(h, m, s)return `转换完毕之后是${h}小时${m}分${s}秒`}let str = getTime(second)document.write(str)console.log(h)</script>
</body></html>

 

这个跟之前讲的逻辑中断很像 ,如果当时函数调用的时候不传值进去。此时得到的就是0。

 

 三、关系运算符比较总结

 由于之后的代码中常常有写if判断的地方,所以需要对运算符的运算结果做一些总结。

 

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

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

相关文章

接下来讲一讲Vue的数据代理

首先讲一下原生js的数据代理 原生的 Object.defineProperty() let aa wewewlet person {name: "王李斌",age: 12} Object.defineProperty(person, "address", {// value: 14&#xff0c; 给字段设置值//enumerable:true, 设置动态设置的字段为可以遍历/…

心电前置放大电路制作与原理详细分析(附电路板实物图)

心电前置放大电路制作与原理详细分析(附电路板实物图) 实验目的实验结果实验电路图原理解释与计算实验测试过程实验参数测量实验洞洞板焊接实验目的 心电信号具有微弱、低频、和高阻抗等特性,极其容易受到干扰。为了实现心电信号的放大,前置放大器需要满足高输入阻抗、高共…

Java List集合 -- 最常用的两种排序方法

现在有一个类 public class Person {private int id;private int age;private String name;public Person(int id, int age, String name) {this.id id;this.age age;this.name name;}public int getId() {return id;}public int getAge() {return age;}public String getN…

基于STM32的homeassistant(采用FreeRTOS操作系统)【第一、二章优化拓展:Wifi、服务器连接验证以及UASRT串口区分】

第一、二章优化拓展开发环境&#xff1a; 主控STM32F103C8T6WIFI模块ESP01S开发语言C开发编译器 KEIL 组网方式WIFI服务器协议MQTT 硬件连接 STM32ESP01S3.3V3.3V GND GND GPIO2 (USRAT2-TX) RXGPIO3 (USART3-RX)TX 本章要点&#xff1a; 对ESP01S的AT指令的反馈指令进…

【Go】实现一个代理Kerberos环境部分组件控制台的Web服务

实现一个代理Kerberos环境部分组件控制台的Web服务 背景安全措施引入的问题SSO单点登录 过程整体设计路由反向代理登录会话组件代理YarnHbase 结果 背景 首先要说明下我们目前有部分集群的环境使用的是HDP-3.1.5.0的大数据集群&#xff0c;除了集成了一些自定义的服务以外&…

vite 引入局部组件 必须带.vue

11:03:47 AM [vite] Internal server error: Failed to resolve import “./components/layoutsHeader” from “src/views/layouts/layouts.vue”. Does the file exist? 在这里插入图片描述

ADC 的初识

ADC介绍 Q: ADC是什么&#xff1f; A: 全称&#xff1a;Analog-to-Digital Converter&#xff0c;指模拟/数字转换器 ADC的性能指标 量程&#xff1a;能测量的电压范围分辨率&#xff1a;ADC能辨别的最小模拟量&#xff0c;通常以输出二进制数的位数表示&#xff0c;比如&am…

ENSP实验一:防火墙基础配置

1、搭建拓扑图 配置client&#xff08;内网&#xff09;、FTP Server&#xff08;外网&#xff09;的IP地址 客户端设置&#xff1a; 服务端设置&#xff1a; 2、配置防火墙命名 进入防火墙&#xff0c;输入密码&#xff1a;默认为admin123 <USG6000V1>system-view /…

计算机网络 day8 动态路由 - NAT - SNAT实验 - VMware的网卡的3种模式

目录 动态路由&#xff1a;IGP 和 EGP 参考网课&#xff1a;4.6.1 路由选择协议概述_哔哩哔哩_bilibili ​编辑 IGP&#xff08;Interior Gateway Protocol&#xff09;内部网关协议&#xff1a; EGP&#xff08;Interior Gateway Protocol&#xff09;外部网关协议&#x…

【论文阅读】聚集多个启发式信号作为监督用于无监督作文自动评分

摘要 本文提出一个新的无监督的AES方法ULRA&#xff0c;它不需要真实的作文分数标签进行训练&#xff1b;ULRA的核心思想是使用多个启发式的质量信号作为伪标准答案&#xff0c;然后通过学习这些质量信号的聚合来训练神经自动评分模型。为了将这些不一致的质量信号聚合为一个统…

vue代码格式化,Prettier - Code formatter格式化规则文件

vue2&#xff0c;vue3格式化代码使用方法&#xff1a; 1、新建文件名&#xff1a; .prettierrc.cjs&#xff0c;里面放上下面的代码片段&#xff0c;直接粘贴即可 2、把 .prettierrc.cjs文件放在项目的根目录中 // prettier的默认配置文件 module.exports {// 一行最多 100 …

【Whisper】《OpenAI Whisper 精读【论文精读】》学习笔记

方法 Whisper在论文中表示使用单模型&#xff08;single model&#xff09;来完成多个语音任务&#xff08;multitask&#xff09;&#xff0c;李沐教授认为优点是设计上比较干净&#xff1b; I. 关于单模型效果的疑问 但是他同时也提出了两个疑问&#xff1a; 使用单模型会…

矩阵AB和BA的特征值相同

手写的&#xff0c;如下图&#xff1a; 即可证明&#xff0c;矩阵AB的特征值和BA的特征值相同。 关于矩阵转置和逆矩阵混合运算&#xff0c;有如下规律&#xff1a;

unity01 界面布局

布局 坐标系 遵循左手定则&#xff0c;中指是y轴、食指是x轴、大拇指是z轴。 可以理解为x轴代表东西方向&#xff0c;z轴代表南北方向&#xff0c;y轴代表上下方向。 常用快捷键 鼠标中键&#xff1a;移动地图 右键&#xff1a;移动视角 shift鼠标左键单击gimo导航器的小方…

Python 算法基础篇之 Python 语言回顾:变量、条件语句、循环语句、函数等

Python 算法基础篇之 Python 语言回顾&#xff1a;变量、条件语句、循环语句、函数等 引言 1. 变量2. 条件语句3. 循环语句 a ) for 循环 b ) while 循环 4. 函数总结 引言 Python 是一种流行的编程语言&#xff0c;具有简洁而易读的语法。在学习算法时&#xff0c;了解 Python…

B070-项目实战-用户模块--手机注册

目录 用户模块需求分析静态网站部署与调试两种前端项目的部署两种前端项目的调试(热部署)创建静态web项目 注册分析与设计分析需求设计 界面设计&#xff08;ui&#xff09;设计表&#xff08;后台&#xff09; 流程设计&#xff08;后台&#xff09;三范式表设计流程设计 相关…

小白入门C#编写MVC登录小案例

一、C#编写MVC登录小案例 &#x1f680;1. 新建MVC项目。 &#x1f680;2. 在Models文件夹下创建一个User类&#xff0c;包含登录所需要的用户名和密码属性。 namespace MvcLogin.Models {public class User{public string UserName{get; set;}public string Password{get;se…

遥感目标检测(1)--R3Det

目录 一、概述 二、三个挑战 三、网络架构​ 1、旋转RetinaNet 2、精细化旋转RetinaNet 3、与RoIAlign&#xff08;感兴趣区域插值&#xff09;进行比较 4、消融实验与对比实验 一、概述 R3Det论文中提到一个端到端的精细化的单级旋转检测器&#xff0c;通过从粗到细的逐…

Maven —— 项目管理工具

前言 在这篇文章中&#xff0c;荔枝会介绍如何在项目工程中借助Maven的力量来开发&#xff0c;主要涉及Maven的下载安装、环境变量的配置、IDEA中的Maven的路径配置和信息修改以及通过Maven来快速构建项目。希望能对需要配置的小伙伴们有帮助哈哈哈哈~~~ 文章目录 前言 一、初…

Unity根据目标点的位置计算Input输入

当给一个目标点&#xff0c;如果目标直接去目标点我们可以直接让position指向目标点的position。 如果是转换输入呢&#xff1f; 举例&#xff1a;例如一个人物动画里有两个参数X和Y&#xff0c;X&#xff08;- 1 &#xff0c;1) 表示向左走和向右走&#xff0c;Y (-1 , 1) 向…