Java Web(四)JS

简介: 简单阐述了JS的基本语法和对象操作,属于对js进行一个浅入浅出的理解

JS

什么是JavaScript?

  • JavaScript是一门跨平台、面向对象的脚本语言,来控制网页行为的,它能使网页可交互
  • W3C标准:网页主要由三部分组成

结构:HTML表现:CSS行为:JavaScript

  • JavaScript和Java是完全不同的语言,不论是概念还是设计。但是基础语法类似。
  • JavaScript(简称:JS)在1995年由Brendan Eich发明,并于1997年成为一部ECMA标准
  • ECMAScript6(ES6)是最新的JavaScript版本(发布于2015年):

一.JS引入

1.两种引入

1.1内部脚本:将JS代码定义在HTML页面中

在HTML中,JavaScript代码必须位<script></script>标签之间

<script>

   alert("hello,JS~");

</script>

提示:

  • 在HTML文档中可以在任意地方,放置任意数量的<script>
  • 一般把脚本置于<body>元素的底部,可改善显示速度,因为脚本执行会拖慢显示

1.2外部脚本:将JS代码定义在外部S文件种,然后引入到HTML页面中

  • 外部文件:demo.js alert("hello,JS~");
  • 引入外部js文件            <script src="../js/demo.js></script>

注意:1.外部脚本不能包含<script>标签2.<script>标签不能自闭合

二.JS基础语法

1.书写语法
  1. 区分大小写:与va一样,变量名、函数名以及其他一切东西都是区分大小写的
  2. 每行结尾的分号可有可无
  3. 注释:
  • 单行注释://注释内容
  • 多行注释:/*     */注释内容
  1. 大括号表示代码块

if (count=3){

   alert(count);

}

2.输出语句
  • 使用window.alert()写入警告框
  • 使用document.write()写入HTML输出
  • 使用console.1og()写入浏览器控制台

window.alert("hello JS~");//弹出警告框

document.write("hello JS~");//写入HTML

console.log("hello JS~");//写入控制台

3.变量
  • JavaScript中用var关键字(varable的缩写)来声明变量

   vartest=20;

   test="张三";

var:

1.作用域:全局变量

2.变量可重复定义

  • JavaScript是一门弱类型语言,变量可以存放不同类型的值
  • 变量名需要遵循如下规则

组成字符可以是任何字母、数字、下划线(_)或美元符号($)数字不能开头建议使用驼峰命名

  • ECMAScript6新增了Iet关键字来定义变量。它的用法类似于var,但是所声明的变量,只在Iet关键字所在的代码块内有效,且不允许重复声明
  • ECMAScript6新增了const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。
4.数据类型

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

5种原始类型:number:数字(整数、小数、NaN(Not a Number)string:字符、字符串,单双引皆可boolean:布尔。true,falsenull:对象为空undefined:当声明的变量未初始化时,该变量的默认值是undefined

使用typeof运算符可以获取数据类型

alter(typeofage);

5.运算符
  • 一元运算符:++,--
  • 算术运算符:+,-,*,/,%
  • 赋值运算符:=,+=,-=…
  • 关系运算符:>,<,>=,<=,!=,==,===
  • 逻辑运算符:&&,||,!
  • 三元运算符:条件表达式?true_value:false_value

== :

1.判断类型是否一样,如果不一样,则进行类型转换2.再去比较其值

===:全等于

1.判断类型是否一样,如果不一样,直接返回faLs2.再去比较其值

类型转换:

*其他类型转为number:

1.string:按照字符串的字面值,转为数字,如果字面值不是数字,则转为NaN。一般使用parseInt2.boolean:true转为1,false转为0

*其他类型转boolean:

1.number:0和NaN转为false,其他的数字转为trUe

2.string:空字符串转为false,其他的字符串转为true

3.null:false

4.undefined:false

三.流程控制语句&函数

1.流程控制语句
1.1if:

   varcount3;

   if (count==3){

       alert(count);

   }

1.2switch:

   varnum=3;

   switch (num){

       case1:{

           alert("星期一")

           break;

       }

       case2:{

           alert("星期二")

           break;

       }

       case3:{

       alert("星期三")

       break;

       }

       case4:{

       alert("星期四")

       break;

       }

       case5:{

       alert("星期五")

       break;

       }

       case6:{

       alert("星期六")

       break;

       }        

       case7:{

       alert("星期日")

       break;

       }

       default:{

           alert("输入星期有误");

           break;

       }

   }

1.3for:

   varsum0;

   for(leti=1;i<=100;i++){

       sum+=i;

       }

   }

   alert(sum);

1.4while:

   varsum=0;

   vari=1;

   while (i<=100){

       sum+i;

       i++;

   }

   alert(sum);

1.5do...while:

   varsum=0;

   vari=1;

   do{

       sum+i;

       i++;

   }

   while (i<=100);

   alert(sum);

2.函数

函数(方法)是被设计为执行特定任务的代码块

定义一:JavaScript函数通过function关键词进行定义,语法为:

functionfunctionName(参数1,参数2....){

   要执行的代码

}

注意:

形式参数不需要类型。因为JavaScript是弱类型语言返回值也不需要定义类型,可以在函数内部直接使用return:返回即可

定义方式一:

functionadd(a,b){

   returna+b;

}

调用:函数名称(实际参数列表);

let result = add(1,2);

定义二:

varfunctionName=function(参数列表){

   要执行的代码

}

varaddfunction (a,b){

   returnab;

}

调用:JS中,函数调用可以传递任意个数参数

letresultadd(1,2,3);

四.JS对象

1.Array数组对象

JavaScript Array对象用于定义数组

  • 定义

var变量名=newArray(元素列表);  //方式一

var变量名= [元素列表];           //方式二

  • 访问

arr[索引] =;

arr[0] =1;

  • 注意:Js数组类似于Java集合,长度,类型都可变

//变长

vararr3=[1,2,3];

arr3[10]=10;

//alert(arr3[10]);

alert(arr3[9]);

//变类型

arr3[5]="hello";

//alert(arr3[5]);

alert(arr3);

  • 属性

属性:Length:数组中元素的个数

vararr4=[1,2,3];

for (leti=0;i<arr4.Length;i++){

   alert(arr4[i]);

}

  • 方法

push方法:添加方法

vararr5=[1,2,3];

arr5.push(10);

alert(arr5);

splice:删除元素

arr5.splice(0,1);//这里的方法重载,能传3个参数

alert(arr5);

2.String
  • 定义

var变量名=newString(s);   //方式-

var变量名=s;               //方式二

  • 属性

length字符串的长度

  • 方法

charAt() 返回在指定位置的字符。indexof()   检索字符串。trim() 去除字符串前后两端的空白字符

3.自定义对象
  • 格式

var对象名称={

   属性名称1:属性值1,

   属性名称2:属性值2,

   ......

   函数名称:function(形参列表){}

   ......

};

var person ={

   name:"zhangsan",

   age:23,

   eat:function {

       alert("干饭~");

   }

}

五.BOM

  • Browser Object Model浏览器对象模型
  • JavaScript将浏览器的各个组成部分封装为对象
  • 组成Window:浏览器窗口对象
  • 组成
  • Window:浏览器窗口对象
  • Navigator:浏览器对象
  • Screen:屏幕对象
  • History:历史记录对象
  • Location:地址栏对象
1.Window
  • Vindow:刘览器窗口对象
  • 获取:直接使用window,其中window.可以省略

window.alert("abc");

  • 属性:获取其他BOM对象
history 对History对象的只读引用。请参数History对象。
Navigator 对Navigator对象的只读引用。请参数Navigator对象。
Screen 对Screen对象的只读l用。请参数Screen对象:
location 用于窗口或框架的Location对象。请参阅Location对象。
  • 方法
alert() 显示带有一段消息和一个确认按钮的警告框。
confirm() 显示带有一段消息以及确认按钮和取消按钮的对括框。
setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
setTimeout() 在指定的毫秒数后调用函数或计算表达式。
2.History
  • History:历史记录
  • 获取:使用window.history获取,其中window可以省略

window.history.方法();

history.方法();

  • 方法
back() 加载history列表中的前一个URL。
forward() 加载history列表中的下一个URL。

六.DOM

  • Document Object Model文档对象模型
  • 将标记语言的各个组成部分封装为对象
  • Document:整个文档对象
  • Element:元素对象
  • Attribute:属性对象
  • Text:文本对象
  • Comment:注释对象

<html>

   <head>

       <title>文档标题</title:>

   </head>

   <body>

       <h1>我的标题<h1>

       <ahref仁"#">我的链接</a>

   </body>

</html>

网络异常,图片无法展示
|

  • JavaScript通过DOM,就能够对HTML进行操作了
  • 改变HTML元素的内容
  • 改变HTML元素的样式(CSS)
  • 对HTML DOM事件作出反应
  • 添加和删除HTML元素
  • DOM是W3C(万维网联盟)的标准
  • DOM定义了访问HTML和ML文档的标准:
  • W3CDOM标准被分为3个不同的部分:

1.核心DOM:针对任何结构化文档的标准模型

  • Document:整个文档对象
  • Element:元素对象
  • Attribute:属性对象
  • Text:文本对象
  • Comment:注释对象

2.XML DOM:针对XML文档的标准模型

3.HTML DOM:针对HTML文档的标准模型

  • Image:<img>
  • Button <input type='button'>
1.获取Element
  • 获取:使用Document)对象的方法来获取

1.getElementByld:根据id属性值获取,返回一个Element对象2.etElementsByTagName:根据标签名称获取,返回Element对象数组

style:设置元素css样式innerHTML:设置元素内容

divs[i].innerHTML="呵呵"

3.getElementsByName:根据name属性值获取,返回Element>对象数组4.getElementsByClassName:根据class/属性值获取,返回Element对象数组

七.事件监听

  • 事件:HTML事件是发生在HTML元素上的"事情”。比如:
  • 按钮被点击
  • 鼠标移动到元素之上
  • 按下键盘按键
  • 事件监听:JavaScript可以在事件被侦测到时执行代码
1.事件绑定
  • 两种方式

方式一:通过HTML标签中的事件属性进行绑定

<input type="button"onclick='on()'>

function on{

   alert("我被点了");

}

方式二:通过DOM元素属性绑定

<inputtype="button"id="btn">

document.getElementByld("btn").onclick=function(){

   alert("我被点了")

}

2.常见事件
事件名 说明
onclick 鼠标单击事件
onblur 元素失去焦点
onfocus 元素获得焦点
onload 某个页面或图像被完成加载
onsubmit 当表单提交时触发该事件
onkeydown 某个键盘的键被按下
onmouseover 鼠标被移到某元素之上
onmouseout 鼠标从某元素移开

Event代表事件对象

八.RE表达式

  • 概念:正则表达式定义了字符串组成的规则
  • 定义

1.直接量:注意不要加引号

var reg = /^\w{6,12}$/;

2.创建RegExp对象

var reg = new RegExp{"Aw6,12)$"};

  • 方法
  • test(str):判断指定字符串是否符合规侧,返回true或false
  • 语法
  • ^:表示开始
  • $:表示结束
  • []:代表某个范围内的单个字符,比如:[0-9]单个数字字符
  • .:代表任意单个字符,除了换行和行结束符
  • \w:代表单词字符:字母、数字、下划线(),相当于[A-Za-z0-9]
  • \d:代表数字字符:相当于[0-9]
  • 量词:
  • +:至少一个  var reg = /^\w+$/;
  • *:零个或多个
  • ?:零个或一个
  • {x}:x个
  • {m,}:至少m个
  • {m,n}:至少m个,最多n个
目录
相关文章
|
2月前
|
缓存 JavaScript 前端开发
Java 如何确保 JS 不被缓存
【10月更文挑战第19天】在 Java 中,可以通过设置 HTTP 响应头来确保 JavaScript 文件不被浏览器缓存。方法包括:1. 使用 Servlet 设置响应头,通过 `doGet` 方法设置 `Expires`、`Cache-Control` 和 `Pragma` 头;2. 在 Spring Boot 中配置拦截器,通过 `NoCacheInterceptor` 类和 `WebConfig` 配置类实现相同功能。这两种方法都能确保每次请求都能获取到最新的 JavaScript 内容。
|
2月前
|
开发框架 JavaScript 前端开发
使用 Node.js 和 Express 构建 Web 应用
【10月更文挑战第2天】使用 Node.js 和 Express 构建 Web 应用
|
29天前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
46 6
|
1月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
58 4
|
1月前
|
开发框架 JavaScript 前端开发
HarmonyOS UI开发:掌握ArkUI(包括Java UI和JS UI)进行界面开发
【10月更文挑战第22天】随着科技发展,操作系统呈现多元化趋势。华为推出的HarmonyOS以其全场景、多设备特性备受关注。本文介绍HarmonyOS的UI开发框架ArkUI,探讨Java UI和JS UI两种开发方式。Java UI适合复杂界面开发,性能较高;JS UI适合快速开发简单界面,跨平台性好。掌握ArkUI可高效打造符合用户需求的界面。
98 8
|
1月前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
35 4
|
2月前
|
存储 JavaScript 前端开发
深入探索 Vue.js:构建现代 Web 应用的利器
【10月更文挑战第11天】深入探索 Vue.js:构建现代 Web 应用的利器
25 1
|
2月前
|
JavaScript 前端开发 网络架构
如何使用Vue.js构建响应式Web应用
【10月更文挑战第9天】如何使用Vue.js构建响应式Web应用
|
1月前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
59 0
|
2月前
|
JavaScript 前端开发
如何使用Vue.js构建响应式Web应用程序
【10月更文挑战第9天】如何使用Vue.js构建响应式Web应用程序