HTML+JavaScript-01

说明

之前有一篇JavaWeb-JavaScript中只是简单介绍了一点JavaScript的内容,这篇笔记算是续写的,但是从01开始编号。

引入js文件

html、css、js俗称前端三剑客,一般都是分开写,先写框架、再写css、最后写js。因此在工程量大的情况下,一个页面可以分为三个文件(.html/.css/.js)。引入对应的js文件也就显得格外重要。因为JavaScript 是一门跨平台、面向对象的脚本语言,它能使网页可交互(例如拥有复杂的动画,可点击的按钮,通俗的菜单等)。

示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- 1、引入js文件 --><script src="./js/00-javaScript.js"></script>
</head><body><!-- 2、脚本块:把script标签写在body中,一般都在div下面 --><script></script>
</body></html>

.js文件中直接写函数即可

基本概念及用法

注释

Javascript 注释的语法和 C++ 或许多其他语言类似:

JSCopy to Clipboard

// 单行注释/* 这是一个更长的,多行注释
*//* 然而,你不能,/* 嵌套注释 */ 语法错误 */

在代码执行过程中,注释将被自动跳过(不执行)。

声明

JavaScript 有三种声明方式。

  • var

    声明一个变量,可选初始化一个值。

  • let

    声明一个块作用域的局部变量,可选初始化一个值。

  • const

    声明一个块作用域的只读常量。

定义变量的注意事项

1、不能重复定义

2、名称不能使用关键字

3、由数字字母下划线组成

4、不能以数字开头

5、尽量采用驼峰命名法

​ 驼峰分为大驼峰和小驼峰

​ 大驼峰所有单词的首字母都大写 比如定义一个男学生的年龄 let StudentAgeBoy=10;

​ 小驼峰首个单词的首字母小写其余单词的首字母大写变量一般使用小驼峰 如 let studentAgeBoy=18;

基本数据类型

在JavaWeb-JavaScript这篇博客中有提到过,但是官网上有七种数据类型,这里在重新写一下(补充BigInt和Symbol)

JavaScript中分为:原始类型和引用类型

基本数据类型的主要特点是赋值方式是传值,并且值存在栈中

原始类型描述
Number数字(整数、小数、NaN(Not a Number))
String字符串,单双引号都可
Boolean布尔,true、false
null对象为空
undefined当声明的变量未初始化时,该变量的默认值是undefined
BigInt任意精度的整数,可以安全地存储大整数,甚至可超过安全整数的现在
Symbol代表,一种实例是唯一且不可改变的数据类型(防止命名冲突)
  • 注:使用typerof运算符可以获取数据类型

示例

案例-036

let a = true;
let b = 33;
let c = "hello world";
alert(typeof a);//boolean
alert(typeof b);//number
alert(typeof c);//string

引用数据类型

引用数据类型:object(对象,除了基本数据类型其他都是对象。数组是对象、函数是对象、正则表达式也是对象

引用数据类型的主要特点是赋值方式是传址,并且存在堆中。(因为引用数据类型的值的大小无法确定,要根据情况进行特定的配置)

代码

//创建一个对象
let obj1 = { key: 'value' };//将obj1赋值给obj2,实际上是将引用传递给obj2
let obj2 = obj1;obj1.key = "甲柒";
//由于obj1和obj2共享引用,所以obj2的值也会被修改
console.log(obj2.key);//甲柒

数据类型的转换

1、toString()方法转换

例如

let s = 998;//number
let a = s.toString();//将s转换为字符串类型并赋值给a

2、String(变量名)强制转换

例如

let b = 334;//number
let c = String(b);//强转为string

3、隐式转换(在js中,一个其他类型和字符串类型相加会获得一个新的字符串)

例如

let d = 521;//number
let f = d + "";//f为string类型

4、Number()强转

示例

案例-037

代码

let age = prompt("输入年龄");//默认输入的是字符串类型
let Age = Number(age);//将字符串类型强转为number类型
alert("age的数据类型是" + typeof age);//string
alert("Age的数据类型是" + typeof Age);//number

5、parseInt():向下取整

示例

案例-038

代码

let age = Number(prompt("输入年龄"));//输入小数22.33
let age1 = parseInt(age);//向下取整
alert("age的数据类型是" + typeof age);//number
alert("age向下取整后的值" + age1);//22

document

document.write:在浏览器页面进行打印

示例

image-20240119204408851

代码

document.write("甲柒~~");

console.log:控制台打印输出

示例

image-20240119204533939

代码

console.log("javaScript~~~");

prompt:在弹框中输入

示例

案例-035

代码

prompt("请输入你的姓名");
prompt("请输入你的年龄", 18);
prompt("请输入你的姓名", "甲柒");
prompt("", "JavaScript!!!");

案例-1-成绩判断

示例

案例-039

代码

let score = Number(prompt("成绩"));
switch (score != null) {case (score>=90):alert("优秀");break;case (score>=80):alert("良好");break;case (score>=60):alert("中");break;case (score<60):alert("差");break;default:break;
}

案例-2-判断闰年

闰年:四年一闰百年不闰,四百年一闰。

示例

案例-040

代码

// 弹窗输入年份
var year = prompt("请输入年份:");// 判断是否是闰年的函数
function isLeapYear(year) {// 闰年的条件:// 1. 能被4整除,但不能被100整除// 2. 能被400整除return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
}// 判断并弹出结果
if (isLeapYear(parseInt(year))) {alert(year + "年是闰年!");
} else {alert(year + "年不是闰年!");
}

案例-3-判断某年某月的天数

1、3、5、7、8、10、12:31天

4、6、9、11:30天

2:分为闰年、平年

示例

案例-041

代码

var year = prompt("请输入年份:");
var month = prompt("请输入月份:");switch (month != null && year != null) {case (month == 1):case (month == 3):case (month == 5):case (month == 7):case (month == 8):case (month == 10):case (month == 12):alert(year + "年" + month + "月有 " + "31" + " 天。");break;case (month == 4):case (month == 6):case (month == 9):case (month == 11):alert(year + "年" + month + "月有 " + "30" + " 天。");break;case (month == 2):if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) {alert(year + "年" + month + "月有 " + "29" + " 天。");} else {alert(year + "年" + month + "月有 " + "28" + " 天。");}break;default:break;
}

案例-4-能否被3、5、7整除

注意顺序:先判断同时满足三种情况,然后判断同时满足两种情况,最后判断满足一种情况

示例

案例-042

代码

let num = prompt("请输入一个数");
switch (num != null) {case num % 3 == 0 && num % 5 == 0 && num % 7 == 0:alert(num + "可以被3、5、7整除");break;case num % 3 == 0 && num % 5 == 0:alert(num + "可以被3和5整除");break;case num % 3 == 0 && num % 7 == 0:alert(num + "可以被3和7整除");break;case num % 5 == 0 && num % 7 == 0:alert(num + "可以被5和7整除");break;case num % 3 == 0:alert(num + "可以被3整除");break;case num % 5 == 0:alert(num + "可以被5整除");break;case num % 7 == 0:alert(num + "可以被7整除");break;
}

从一个数组中获取随机值

使用Math.random()

示例

案例-043

先声明一个数组

const array = ['a', 'b', 'c', 'd', 'e'];

使用Math.random()函数对数组的下标进行随机取值,注意要对随机值进行取整处理,可以使用parseInt()或者Math.floor()

Math.random()生成0到1之间的随机数,并与数组长度相乘,数字总是在0到数组长度之间返回,这被称为随机指数。Math.floor(),对于浮动的下限值返回整数。

function randomNum() {const array = ['a', 'b', 'c', 'd', 'e'];let arrayIndex = parseInt(Math.random() * array.length);let arrayRandom = array[arrayIndex];alert(array+"中的随机数为:"+arrayRandom);
}
randomNum();

parseInt()Math.floor() 都是 JavaScript 中用于数值处理的函数,但它们的行为有所不同。

  1. parseInt() 函数用于将字符串转换为整数。如果字符串的开头是数字,parseInt() 将返回这个数字的整数形式。如果字符串的开头不是数字,parseInt() 将返回 NaN。例如:
parseInt('123abc'); // 返回 123
parseInt('abc123'); // 返回 NaN

此外,parseInt() 还接受第二个参数,表示要转换的数字的基数。例如:

parseInt('10', 2); // 返回 2 (二进制中10表示为1010)
  1. Math.floor() 函数用于将一个数值向下取整。也就是说,它会返回不大于给定数值的最大整数。例如:
Math.floor(4.7); // 返回 4
Math.floor(-4.7); // 返回 -5

注意,Math.floor() 只处理数值,如果你尝试将非数值传递给它,它可能会返回 NaN

在某些情况下,你可能会发现 Math.floor() 的行为类似于 parseInt(),尤其是当你处理的数字接近于整数时。然而,它们之间的主要区别在于如何处理非整数部分:Math.floor() 会完全忽略它们,而 parseInt() 则会简单地将其视为0。

参考文章:https://juejin.cn/post/7118593994212245518

Math对象

常用函数属性
random随机生成0-1的随机数[0, 1)
ceil向上取整
floor向下取整
max找最大值
min找最小值
pow幂运算
abs求绝对值
round四舍五入

注:随机生成一个n-m的整数Math.floor(Math.random() * (m - n + 1)) + n;

示例-1

案例-045

代码

let a = Math.random();//随机生成一个0-1的小数
console.log("a=" + a);//[0,1)let a1 = Math.random() * 10;//随机生成一个0-10的小数
console.log("a1=" + a1);//[0,10) 小数let a2 = Math.floor(11.9);//floor 向下取整
console.log("a2=" + a2);//11let a3 = Math.floor(Math.random() * 11);//生成0-10的整数
console.log("a3=" + a3);//[0,10] 整数let a4 = Math.floor(Math.random() * 6) + 5;//随机生成5-10的整数
console.log("a4=" + a4);//[5,10]// 随机生成一个n-m的整数
// Math.floor(Math.random() * (m - n + 1)) + n;// 随机生成一个10-30的整数
let a5 = Math.floor(Math.random() * (30 - 10 + 1)) + 10;
console.log("a5=" + a5);//[10,30]let a6 = Math.ceil(13.09);//向上取整
console.log("a6=" + a6);//14

示例-2

image-20240120161304014

代码

let a7 = Math.max(1, -2, 3, 4, 5, 6, 99, 9, 45);
let a8 = Math.min(1, -2, 3, 4, 5, 6, 99, 9, 45);
console.log("a7=" + a7);//99
console.log("a8=" + a8);//-2const arr = [33, 22, 55, 66, 77, -99];
let a9 = Math.max(...arr);//...展开运算符
console.log("a9=" + a9);//77let a10 = Math.pow(2, 4)//求2的4次方
console.log("a10=" + a10);//16let a11 = 2 ** 3;//2的3次方
console.log("a11=" + a11);//8let a12 = Math.abs(-19);//求绝对值
console.log("a12=" + a12);//19console.log(Math.round(3.14159));//四舍五入 3 

注:...为展开运算符

展开语法

展开语法 (Spread syntax), 可以在函数调用/数组构造时,将数组表达式或者 string 在语法层面展开;还可以在构造字面量对象时,将对象表达式按 key-value 的方式展开。(译者注: 字面量一般指 [1, 2, 3] 或者 {name: "mdn"} 这种简洁的构造方式)

详情:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax#%E8%AF%AD%E6%B3%95

案例-5-生成验证码

示例

案例-044

代码

function captcha() {const characters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i','j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v','w', 'x', 'y', 'z', 1, 2, 3, 4, 5, 6, 7, 8, 9, 0];const newCode = [];for (let i = 0; i <= 3; i++) {let index = Math.floor(Math.random() * characters.length);newCode.push(characters[index]);}return newCode;
}
alert("本次验证码:" + captcha());

日期对象Date

常用方法

方法名作用取值范围
getFullYear()获取年份获取四位年份
getMonth()获取月份0-11
getDate()
getDay()获取星期0-6
getHours()获取小时0-23
getMinutes()获取分钟0-59
getSeconds()获取秒0-59

示例

image-20240120164650068

代码

const date = new Date();//实例化对象let year = date.getFullYear();
console.log(year + "年");//年
console.log(date.getMonth() + 1 + "月");//月
console.log(date.getDate() + "日");//日
console.log("星期" + date.getDay());//星期
console.log(date.getHours() + "时");//时
console.log(date.getMinutes() + "分");//分
console.log(date.getSeconds() + "秒");//秒

格式化日期对象

自定义函数格式化时间

示例

image-20240120165238574

代码

function getDate() {//创建时间对象const date = new Date();let year = date.getFullYear();let month = date.getMonth() + 1;let date1 = date.getDate();let hours = date.getHours();hours = hours < 10 ? "0" + hours : hourslet minute = date.getMinutes();minute = minute < 10 ? "0" + minute : minute;let second = date.getSeconds();second = second < 10 ? "0" + second : second;return year + "年" + month + "月" + date1 + "日" + "  " + hours + ":" + minute + ":" + second
}
console.log(getDate());

使用封装过的方法

方法名格式
toLocaleString()2022/4/1 09:33:34
toLocaleDateString()2022/4/1
toLocaleTimeString()10:09:31

示例

image-20240120170145431

代码

const date = new Date();//实例化对象
console.log(date.toLocaleString());//2024/1/20 17:00:42
console.log(date.toLocaleDateString());//2024/1/20
console.log(date.toLocaleTimeString());//17:00:42

时间戳

时间戳:是指1970年01月01日00时00分00秒到现在的毫秒数

获取时间戳

示例

image-20240120171013947

方法一

const date = new Date();
console.log(date.getTime());

方法二

console.log(+new Date());

方法三

console.log(Date.now());

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

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

相关文章

设计模式——装饰者模式

更多内容&#xff0c;前往 IT-BLOG 现实生活中常常需要给某类产品动态增加新的功能&#xff0c;如&#xff1a;给面条各种调味品。在软件开发过程中&#xff0c;有时想用一些现存的组件。这些组件可能只是完成一些核心功能。但在不改变其架构的情况下&#xff0c;可以动态地扩展…

《WebKit 技术内幕》之五(1): HTML解释器和DOM 模型

第五章 HTML 解释器和 DOM 模型 1.DOM 模型 1.1 DOM标准 DOM &#xff08;Document Object Model&#xff09;的全称是文档对象模型&#xff0c;它可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。这里的文档可以是 HTML 文档、XML 文档或者 XHTML 文档。D…

【数学建模】图论模型

文章目录 图的基础理论及networkx简介图的基本概念图的表示及Networkx简介图的表示NetworkX简介 最短路算法及其Python实现固定起点到其余各点的最短路算法每对顶点间的最短路算法最短路应用 最小生成树算法及其networkx实现基本概念最小生成树算法最小生成树应用 匹配问题最大…

Qt5.15.2中加入图片资源

系列文章目录 文章目录 系列文章目录前言一、加入图片资源二、代码 前言 以前用的Qt5.15.2之前的版本&#xff0c;QtCreator默认的工程文件是*.pro&#xff0c;现在用5.15.2创建工程默认的工程文件是CMameList.txt,当然在创建项目时&#xff0c;仍然可以使用pro工程文件用QtCr…

13.浮动面板(PaletteSet)

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;.NET FrameWork4.5、ObjectArx 2016 64bit、Entity Framework 6. 在CAD中进行通用组件开发或常驻界面的控件开发时&#xff0c;可使用PaletteSet作为停靠面板&#xff0c;然后将自己的空间放入其中。 1.示例 SearchRe…

web terminal - 如何在mac os上运行gotty

gotty可以让你使用web terminal的方式与环境进行交互&#xff0c;实现终端效果 假设你已经配置好了go环境&#xff0c;首先使用go get github.com/yudai/gotty命令获取可执行文件&#xff0c;默认会安装在$GOPATH/bin这个目录下&#xff0c;注意如果你的go版本比较高&#xff…

小程序系列--10.小程序WXS 脚本

一、概述 1. 什么是 wxs&#xff1f; WXS&#xff08;WeiXin Script&#xff09;是小程序独有的一套脚本语言&#xff0c;结合 WXML&#xff0c;可以构建出页面的结构。 2. wxs 的应用场景 wxml 中无法调用在页面的 .js 中定义的函数&#xff0c;但是&#xff0c;wxml 中可…

Ceph应用

目录 1.资源池Pool管理 创建一个Pool资源池 查看集群Pool信息 查看资源池副本的数量 查看PG和PGP数量 修改pg_num和pgp_num的数量 修改Pool副本数量 删除Pool资源池 2.创建CephFS文件系统MDS接口 服务端操作(192.168.88.22) 1.在管理节点创建 mds 服务 2.查看各个节…

JUC并发编程知识点总结

JMM Java内存模型规定所有的变量都存储在主内存中&#xff0c;包括实例变量&#xff0c;静态变量&#xff0c;但是不包括局部变量和方法参数。每个线程都有自己的工作内存&#xff0c;线程的工作内存保存了该线程用到的变量和主内存的副本拷贝&#xff0c;线程对变量的操作都在…

智篆商业土豆老师:引领电商运营新潮流

智篆商业的土豆老师不仅是电商运营的专家&#xff0c;更是引领电商运营新潮流的先锋。他时刻关注电商行业的发展动态&#xff0c;深入研究新兴技术和市场趋势&#xff0c;不断探索电商运营的新模式和新思路。 土豆老师认为&#xff0c;未来的电商运营将更加注重个性化和精细化…

初始RabbitMQ(入门篇)

消息队列(MQ) 本质上就是一个队列,一个先进先出的队列,队列中存放的内容是message(消息),是一种跨进程的通信机制,用于上下游传递消息, 为什么使用MQ: 削峰填谷: MQ可以很好的做一个缓冲机制,例如在一个系统中有A和B两个应用,A是接收用户的请求的,然后A调用B进行处理. 这时…

微信中这些黑科技不知道,白用微信这么多年,速来学,春节假期很有用,第1季:【#】字诀。

微信中这些黑科技不知道&#xff0c;白用微信这么多年&#xff0c;速来学&#xff0c;春节假期很有用&#xff0c;第1季&#xff1a;【#】字诀。 大家好&#xff01;我是老码农。 今天分享的主题&#xff1a;微信中的黑科技。微信这款软件不用过多介绍&#xff0c;聊天、看朋…

机器人电机综述 — 电机分类、舵机、步进与伺服、物理性质和伺服控制系统

电机综述 图片与部分素材来自知乎大佬不看后悔&#xff01;最全的电机分类&#xff0c;看这一篇就够了&#xff01; - 知乎 (zhihu.com)&#xff0c;本文只是把机器人中常用的电机知识提炼了一下 1 按照结构和工作原理划分 1. 同步电机 ​ 电机的转速与定子磁场的转速相同步…

springboot113健身房管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的健身房管理系统 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取…

stm32 FOC 电机介绍

今年开始学习foc控制无刷电机&#xff0c;这几天把所学整理一下&#xff0c;记录一下知识内容。 前言: 为什么要学习FOC? 1.电机控制是自动化控制领域重要一环。 2.目前直流无刷电机应用越来越广泛&#xff0c;如无人机、机械臂、云台、仿生机器人等等。 需要什么基础&…

设计模式-资源库模式

设计模式专栏 模式介绍模式特点应用场景资源库模式与关系型数据库的区别代码示例Java实现资源库模式Python实现资源库模式 资源库模式在spring中的应用 模式介绍 资源库模式是一种架构模式&#xff0c;介于领域层与数据映射层&#xff08;数据访问层&#xff09;之间。它的存在…

Ansible常用模块

目录 实验前准备Ansible部署安装ansible配置主机清单配置密钥对验证 常用模块commond模块shell模块cron模块user模块group模块copy模块file模块ping模块yum模块service/systemd模块script模块setup模块 遇到的问题sshpass卡住 实验前准备 Ansible管理机&#xff1a;192.168.18…

【新书推荐】Web3.0应用开发实战(从Web 2.0到Web 3.0)

第一部分 Flask简介 第1章 安装 1.1 创建应用目录 1.2 虚拟环境 1.2.1 创建虚拟环境 1.2.2 使用虚拟环境 1.3 使用pip安装Python包 1.4 使用pipregs输出包 1.5 使用requirements.txt 1.6 使用pipenv管理包 第2章 应用的基本结构 2.1 网页显示过程 2.2 初始化 2.3 路由和视图函数…

Jmeter的文件参数化:CSV数据文件设置和_CSVRead函数

一、CSV数据文件设置 1、简介 CSV数据文件配置&#xff08;CSV Data Set Config&#xff09;可以将CSV文件中数据读入自定义变量中 Jmeter中CSV数据文件配置的界面如下图所示&#xff1a; 其中&#xff1a; &#xff08;1&#xff09;文件编码 文件的编码格式&#xff0c;与所…

Element-UI 多个el-upload组件自定义上传,不用上传url,并且携带自定义传参(文件序号)

1. 需求&#xff1a; 有多个&#xff08;不确定具体数量&#xff09;的upload组件&#xff0c;每个都需要单独上传获取文件&#xff08;JS File类型&#xff09;&#xff0c;不需要action上传到指定url&#xff0c;自定义上传动作和http操作。而且因为不确定组件数量&#xff0…