Java学习----前端3

news2025/3/1 4:10:25

今日学习内容如下:

JavaScript

JavaScript 是一种基于对象和事件驱动的客户端脚本语言
  • 动态、弱类型、基于原型,内置了支持类
  • 解释器称为 JS 引擎,内置于浏览器中
  • ECMA 欧洲计算机制造商协会

Hello world

<input type="button" onclick="ff()" value="Click me"> onclick就是给按钮绑定了一
个响应函数,点击按钮则会触发响应函数的执行
<script>
function ff(){
window.alert('点击操作处理...');
}
</script>
复杂的写法
<button>Click me</button>
<script>
window.onload=function(){//当窗口加载完毕后自动执行的回调处理
var btn=document.getElementsByTagName("button")[0];//按照标签名称查找文
档中的所有指定标签,例如这里查找所有的button标签
btn.onclick=function(){ //给查找的页面元素绑定单击响应函数
alert(this.firstChild.nodeValue);//this用于指代当前事件源对象,也就是
button按钮。获取按钮元素的第一个子元素
}
}
</script>

JavaScript基本语法

<script> 标签用于在 html 页面中定义客户端脚本,可以写在 <html></html> 中的任意位置。可以添加属性 type 用于说明脚本的 MIME 类型 text/javascript
js 脚本既可以写在 html 文件内部,也可以独立定义 js 文件,需要使用时进行连接引入。例如 <script
type="text/javascript" src=" 引入的 js 文件路径 "></script> 。引入外部文件的 <script> 标签之间不能包含内容
  • 加载外部的css文件使用的是link标签 <link rel="stylesheet" type="text/css" href="style/aaa.css">

JavaScript数据类型

js 是弱类型脚本语言,变量的数据类型是解释执行时动态决定的。
  • 基本数据类型:Number数值型、布尔类型boolean、字符串类型string
    • undefined类型只有一种可取值undefined,表示没有初始值的变量
    • null类型表示已经赋值,只是值为空
  • 复合数据类型:对象、数组和函数
  • JavaScript中严格区分大小写
  • JavaScript中标识符的命名规范和Java一致

布尔类型

  • truetrue、非零数字、非空字符串
  • falsefalse、数值0、空字符串、undefinednull

函数

JS 中函数也是一个对象,可以将函数作为一个值赋给变量,函数名就是这个对象的引用
var f=function(name){
alert('xxxx'+name);
}
f('lisi');

变量

变量定义可以使用关键字 var let 进行定义,也可以不加任何关键字
<script>
var kk=999;
mm="number:";
let sex=true;
document.writeln("kk:"+kk+"<br/>");
document.writeln("mm:"+mm+"<br/>");
document.writeln("sex:"+sex+"<br/>");
</script>
JavaScript 是弱类型编程语言,声明变量时不需要指定类型,而且变量类型也随着赋值的改变而改变

正则式

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串就认为它匹配了,否则该字符串就是不合法的
正则式本质上就是一种允许使用通配符的特殊字符串,基础语法就是【/ 表达式 / 】,最初的主要用于用 户输入数据的校验

通配符

特殊字符表示频率修饰

特殊字符说明
指定前面的表达式可以出现零次或一次
*指定前面的表达式可以出现零次或多次
+指定前面的表达式可以出现一次或多次
{m, n} 表示法这种写法最灵活,用于表示前面的表达式可以最少出现m次,最多出现n次。注意其中 的m和n都可以省略,省略m表示0,省略n表示无限次

固定组

固定组可以使用()表示,可以使用竖线 | 表示互斥

例如 (abc)|(efg) 表示可以匹配abc或者efg

常用方法

基本使用方法

<form action="./index.html" name="form1" method="post" onsubmit="return
isSubmit();">
onsubmit就是在form表单提交之前所执行的函数
这里可以使用return false阻止form表单的提交
function isSubmit(){
if(checkSNO(document.form1.sno) && checkSname(document.form1.sname) &&
checkSbirthday(document.form1.sbirthday)){ 执行各个输入的验证,如果验证通过则返回
true,使form表单提交,否则返回false阻止提交
return true;
}
return false;
}

正则式对象的test方法

test()方法用于判断正则式是否匹配某个字符串

<input type="text" name="sno" onBlur="checkSNO(this)" />
<td id="sno"></td>
当输入框失去焦点时自动回调checkSno函数,并将当前页面元素作为参数传递到函数中
function checkSNO(n){
var flag = true;
var message = "ok";
var zz = /^\d{4}$/; 整个字符串内容必须以数字开头【^】,以数字结尾【$】。\d表示数
字,每个字符必须是0-9的数字,{4}表示\d需要出现4次,如果{4,}表示最少出现4次,如果{,4}表示
0次到4次
if(!zz.test(n.value)){ 判断输入的内容是否复合正则式,符合则为true,否则为
false。n是调用时候传入的页面元素,.value则获取该页面元素的value值
message ="no";
flag = false;
}
document.getElementById(n.name).innerHTML=message;
return flag;
}

如果要求输入4位数字,而且不能0开头。 /^[1-9][0-9]{3}$/

判断输入内容为中文字符,要求最少2个,最多10个

function checkSname(n){
var flag = true;
var message = "ok";
var zz = /^[\u4e00-\u9fa5]{2,10}$/;
if(!zz.test(n.value)){
message ="no";
flag = false;
}
document.getElementById(n.name).innerHTML=message;
return flag;
}

判断用户输入的日期类型样式

function checkSbirthday(n){
var flag = true;
var message = "ok";
var zz = /^\d{4,}-([1-9]|[1][012])-([1-9]|[12][0-9]|[3][01])$/;
if(!zz.test(n.value)){
message ="no";
flag = false;
}
document.getElementById(n.name).innerHTML=message;
return flag;
}

样例深入理解

初期开发中使用正则式的建议:到网络上查询,不建议自己写,除非有把握。

vscode的插件any-rule按需求直接生成

没有通配符

var str="112yanjun";
var reg1=/yan/;表示3个字符,而且连接顺序确定。主要字符串中包含yan子串则返回true
document.writeln(reg1.test(str));
添加特定符号
/^yan/ 表示要求以yan子串开头,例如yanjun
/yan$/ 表示要求以yan子串收尾,例如junyan

使用通配符

其它通配符的含义比较清晰,重点理解[]的用法

要求字符串应该是由数字组成
\d表示字符串中的一个字符应该是数字
var str="12";
var reg1=/^\d$/;
document.writeln(reg1.test(str)); 返回值为false
使用+表示前面的字符可以出现一次或多次,但是由于^和$的限制,所以str中包含字符a非数字,返回值
为false
var str="1243213421a2";
var reg1=/^\d+$/;
document.writeln(reg1.test(str));
可以使用[]表示一个字符的条件
[1-9]表示字符串中一个字符应该是1到9的数字
var str="0";
var reg1=/^[1-9]$/; reg1.test返回false
var str="1f";
var reg1=/^[1-9a-f]{2}$/; //可以匹配1-9的数字或者a-f的字符
var str="yb";
var reg1=/^[yan]{2}$/; //每个字符可以使用yan中任意一个字符

其它用法【不重要】

new RegExp()构建正则表达式对象,可以使用参数指定匹配模式g、i、m

  • g全文查找、i忽略大小写、m 多行查找。也可以同时指定3个模式
var str = "Visit W3School, W3School is a place to studyweb tech.";
var patt = new RegExp("W3School","g");
var result;
while ((result = patt.exec(str)) != null) {
document.write(result);
document.write(patt.lastIndex);
}
  • compile编译正则表达式,例如 reg1.compile("man","g"); 修改正则式对象中的正则表达式
  • test判断是否符合正则表达式 [主要应用]
  • exec检索字串中指定的值,返回找到的值,并确定位置

字串的replace方法

replace(正则式,替换内容) 用于进行符合正则式要求的字符串的替换

function trim(str){
return str.replace(/(^\s*)|(\s*$)/g,"");//剔除字符串两端的空格符,其中^\s*表示
开头部分的多个空格,\s*$表示收尾的多个空格。默认只匹配一次,如果需要匹配所有满足条件的字符
串,则需要使用贪婪模式g
}
alert(trim(" safdas "));

String其它方法

  • search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
  • match() 法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
  • replace()替换与正则表达式匹配的子串
  • split() 把字符串分割为字符串数组

search() 方法用于检索字符串中指定的子字符串或检索与正则表达式相匹配的子字符串。如果没有找到 任何匹配的子串,则返回-1

var str="Mr. Bluehas a blue house";

document.write(str.search(/blue/i));

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

match()方法将检索字符串String Object,以找到一个或多个与regexp匹配的文本。这个方法的行 为在很大程度上有赖于regexp是否具有标志g。如果regexp没有标志 g,那么match方法就只能在 stringObject中执行一次匹配。如果没有找到任何匹配的文本,match将返回null。否则它将返回 一个数组,其中存放了与它找到的匹配文本有关的信息

var str = "The rain in SPAIN stays mainly in theplain";

var n=str.match(/ain/gi);

document.getElementById("demo").innerHTML=n;

输出值为:ain,AIN,ain,ain 

split() 方法用于把一个字符串分割成字符串数组。如果把空字符串""用作separator,那么stringObject 中的每个字符之间都会被分割。split方法不改变原始字符串 

var str="How areyou doing today?";

var n=str.split("",3);

输出值:How,are,you

var str="How areyou doing today?";

var n=str.split(/[a-e]/); 

 H5的数据校验

html5额外添加了一些输入校验属性进行简单的客户端校验,不符合规则则会弹出tip进行提示

  • required指定必须填写
  • pattern指定输入值必须符合指定的正则表达式
  • min/max针对数值和日期的最大最小值
<input type=text name=name required/>
<input type=text name=isdn required pattern="\d{3}-\d-\d{3}-\d{5}"/>
<input name=price type=number min=20 max=150 step=5 />

自定义报错信息

默认html5为每个校验规则提供相应的报错提示,这些错误提示信息是固定的。html5为表单控件提供 setCustomValidity()方法实现用户自定义报错提示信息。但是注意浏览器对自定义错误提示的支持并不 是很理想,可能会有页面需要刷新一次的问题。

<form action=add>
<input id=name name=name type=text required/>
<input type=submit value=提交 onclick="check();"/>
</form>
<script type="text/javascript">
var check=function(){
if(! document.getElementById("name").checkValidity()){
document.getElementById("name").setCustomValidity("名称是必须填写的!");
}
}
</script>

H5验证总结

  • 优点:简单方便
  • 缺点:提示的UI不是太漂亮,无法做多个验证,必须表单提交才能验证(即ajax无效)
  • 建议:在要求比较简单的时候可以考虑使用H5验证表单,也可以使用内置JS函数加各种事件自定义 一个验证函数,不过这样不仅兼容是个问题,而且还麻烦,倒不如直接使用JQ插件验证

Date日期类型

Date日期对象。这个对象可以储存任意一个日期,从0001年到9999年,并且可以精确到毫秒数 (1/1000秒)

  • 在内部,日期对象是一个整数,它是从1970年1月1日零时正开始计算到日期对象所指的日期的毫 秒数。如果所指日期比1970年早,则它是一个负数

所有日期时间,如果不指定时区,都采用UTC世界时时区,它与GMT格林威治时间在数值基本上是一样的

  • 不指定参数日期 new Date()
  • 参数为日期字符串: var nowd2=new Date("2019/3/20 11:12");
  • 参数为毫秒数: var nowd3=new Date(5000);
  • 参数为年月日小时分钟秒毫秒: var nowd4=new Date(2018,10,24,11,12,0,300);

常见方法:

  • getFullYear() 返回四位数的年、getMonth() 返回月 0-11、 getDate() 返回日、 getDay() 返回星期
  • getHours() 返回小时 0-23、 getMinutes() 返回分钟 0-59 、getSeconds() 返回秒数 0-59
  • getMilliseconds() 返回0-999 毫秒

以上都可以加UTC返回世界时间

UTC协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。 中国大陆为 UTC+8

  • getTime() 返回1970 年 1 月 1 日至今的毫秒数 setFullYear(year,month,day) 、
  • setMonth(month,day) 、setDate(day)、 setHours(hour,min,sec,millisec)、setMinutes(min,sec,millisec)、setSeconds(sec,millisec)、 setMilliseconds(millisec)、setTime(millisec)

需求:当用户浏览网页的时候,根据当前的时间,给出问候语:

  • 6:00-9:00 早上好
  • 9:01-11:30 上午好
  • 11:31-14:30 中午好
  • 14:31-17:30 下午好
  • 17:31-18:40 傍晚好
  • 18:41-23:59 晚上好
  • 0:00-5:59 凌晨好

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

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

相关文章

与git相关错误的究极解决方案

没有科学上网导致的git推送和拉取错误&#xff0c;严重阻碍了搬砖进度&#xff0c;遇到的与git有关的错误&#xff1a; 1. gnutls_handshake() failed: The TLS connection was non-properly terminated. 2. Failed to connect to github.com port 443:connection timed out …

Postman 如何获取请求结果并设置到请求头中

目录1.设置环境变量2.获取token&#xff0c;并赋值给环境变量3.将环境变量添加到请求头Postman&#xff1a; 是一款用于接口调试和测试的开发工具&#xff0c;功能强大&#xff0c;使用简单。 无论是开发人员进行接口调试&#xff0c;还是测试人员做接口测试&#xff0c;Postma…

本地生活小程序有什么功能_本地生活小程序的优势

对于平台运营方 痛点&#xff1a;社区团购毛利偏低 零售行业竞争激烈&#xff0c;单纯依靠社区团购卖货整体毛利率较低 手中大量用户&#xff0c;缺少好的变现模式&#xff0c;迫切需要提升盈利能力。 优势&#xff1a;提升盈利&#xff0c;解决流量变现 本地生活属于轻资产…

8Manage:千万别忽视了供应商绩效管理

供应商绩效管理是采购管理流程中的一部分&#xff0c;现代企业几乎都会对供应商实行绩效考核。绩效管理的主要目的是了解供应商的表现、促进供应商改进&#xff0c;并为工业商奖励、供应商优化提供依据&#xff0c;以此来发现优质的供应商&#xff0c;及时改进不合格的供应商。…

Python控制自己的手机摄像头拍照,并把照片自动发送到邮箱

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 今天这个案例&#xff0c;就是控制自己的摄像头拍照&#xff0c; 并且把拍下来的照片&#xff0c;通过邮件发到自己的邮箱里。 想完成今天的这个案例&#xff0c;只要记住一个重点&#xff1a;你…

CSDN的MD编辑器【写作技巧】

CSDN的MD编辑器【写作技巧】在线LaTeX公式的编辑器快捷键&#xff0c;结合快捷键提高效率写作技巧在线LaTeX公式的编辑器 推荐去https://www.latexlive.com/在线LaTeX公式编辑器 将写好的公式代码复制过来。 然后复制在CSDN编辑器里面前后加上符合$就行了 前后加两个该符合就会…

Java环境安装即配置

一、java1.8的安装步骤 1 安装目录创建java文件夹 在想要安装java的目录下创建一个java文件夹,不能出现特殊符号和汉字、空格等 2 java文件夹内创建jdk和jre Java安装需要两部分,一个jdk一个jre 所以在java文件夹中创建两个文件夹 3 解压安装包 通过百度网盘分享的文件&#…

【论文精读3】MVSNet系列论文详解-P-MVSNet

P-MVSNet全名为“P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo”&#xff0c;名字当中反映了论文的核心模块即基于学习方法的分块匹配置信聚合模块&#xff0c;乍一看有点难理解&#xff0c;但看完本文肯定很清楚啦。 本文是MVSNet系…

mysql 数据库使用分享(多图解析)

1、大体流程 1.1 一些概念 1.1.1 RDBMS 关系型数据库&#xff0c;是指采用了关系模型来组织数据的数据库&#xff0c;其以行和列的形式存储数据&#xff0c;类似excel 1.1.2 OLAP 和 OLTP OLTP(Online transactionprocessing):在线/联机 事务 处理。主要是对数据库中的数据…

PTA:字符串加密

输入一个原始字符串&#xff08;长度小于80&#xff09;&#xff0c;然后输入一个5位的数字字符串作为加密密钥&#xff0c;对原始字符串中的每个字符根据其位置&#xff08;对5取模&#xff09;变换为加上数字字符串中的数字的字符。如输入原始字符串student&#xff0c;然后输…

Linux学习-36-文件系统管理-硬盘结构

10 Linux文件系统管理 之前在安装Linux的时候已经对 Linux 的分区方法和文件系统进行了介绍。不过那种分区方法是在安装系统的同时使用图形界面进行分区&#xff0c;如果添加了一块硬盘&#xff0c;那么当然要有不重新安装系统就可以分区的方法。文件系统即分区&#xff1a;原…

通达信接口进行二次编程开发步骤

大家都知道通达信接口是比较流行的快速通达信数据excel接口&#xff0c;能够提供多家券商&#xff0c;包括通达信数据excel接口、量化回测平台等。 通达信接口API接口说明&#xff08;部分&#xff09; 今天小编主要讲一下&#xff0c;关于通达信接口进行二次编程开发步骤如下…

【Linux】基本指令合集

1、ls 指令 功能: 显示当前目录下的所以子目录和文件 常用选项&#xff1a; -a&#xff1a;显示目录下的所以文件和以 . 开头的隐藏文件 -l&#xff1a;查看文件&#xff0c;ls -l等价于ll -R&#xff1a;显示所以子目录下的文件 -t&#xff1a;以时间排序 举例&#xff1a; …

PyCharm 的初始设置

目标 1、恢复 PyCharm 的初始设置 2、第一次启动 PyCharm/ 3、新建一个 Python 项目 4、设置 PyCharm 的字体显示 5、PyCharm 的升级以及其他 6、PyCharm 的官方网站地址是&#xff1a; PyCharm: the Python IDE for Professional Developers by JetBrains 01. 恢复 Py…

PMP有用吗,PMP含金量,如何转型项目经理?

先说一句&#xff0c;pmp是有用的&#xff0c;含金量也挺高的&#xff0c;也可以转型项目经理的&#xff0c;我再分别说明一下。 1、PMP有用么&#xff1f; 从本质来说&#xff0c;应该是pmp学习项目管理有没有用。 参加PMP认证与考试的过程是一个系统学习和巩固项目管理知识…

小白速点,计算机的存储规则你知道多少

计算机的存储规则 以前的认知 ​ 我们知道计算机中所有的文件都是存储在硬盘上的。当我们在编辑一个文档的时候&#xff0c;点击了保存按钮&#xff0c;那么文件中所有的数据都会保存在硬盘上。 但是他是怎么存储的呢&#xff1f;咱们就需要来学习一下。 计算机的二进制 ​…

三驾马车、四大赛道,元宇宙如何领跑数字经济?

进入2022年,全球互联网巨头继续加快布局元宇宙步伐,国内互联网企业也争相申请注册元宇宙相关商标,抢占数字经济发展先机。 党的十八大以来,发展数字经济逐渐上升为国家战略。多名业内权威人士表示,元宇宙或将引领全球数字经济发展,亟须尽快出台政策,破解制约元宇宙发展的法律…

隐式神经表示做超分:Local Texture Estimator for Implicit Representation Function

文章目录1. Local Texture Estimator for Implicit Representation Function1. 通过隐式神经网络表示方法 实现 超分辨率。2. 在编码器和解码器之间作者引入一个 local texture estimator3. 代码分析整体框架生成图像特征&#xff0c;编码器是一个常规的卷积网络&#xff0c;文…

vue3【生命周期讲解-详】

一、通过配置项的形式使用生命周期钩子 父组件&#xff1a; <template><button click"isShowDiv!isShowDiv">切换显示隐藏</button><Test v-if"isShowDiv"></Test> </template><script> import Test from ./…

怎么查看LinkedIn领英号用了多久?

怎么查看LinkedIn领英号用了多久&#xff1f; 1.第一步&#xff0c;点击“我”&#xff0c;点击设置和隐私 2.第二步&#xff0c;点击“数据隐私”&#xff0c;再点击“管理您的资料和活动” 3.往更早的时间去翻找&#xff0c;最早的就是注册时间 LinkedIn领英有什么开发…