简介
- 概念
1
2
3* 是一门客户端脚本语言
* 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎
* 脚本语言:不需要编译,直接就可以被浏览器解析执行了 - 功能
1
2可以来增强用户和html页面的交互过程,可以来控制html元素,
让页面有一些动态的效果,增强用户的体验。 - 发展史
1
2
3
4
5
6
71. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEase
2. 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。后来,请来SUN公司的专家,修改LiveScript,命名为JavaScript
3. 1996年,微软抄袭JavaScript开发出JScript语言
4. 1997年,ECMA(欧洲计算机制造商协会),制定出客户端脚本语言的标准:ECMAScript,就是统一了所有客户端脚本语言的编码方式。
* `JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)`
* ECMAScript:客户端脚本语言的标准
基本语法
与html结合方式
1 | 1. 内部JS: |
注释
1 | 1. 单行注释://注释内容 |
数据类型
1 | 1. 原始数据类型(基本数据类型): |
变量
1 | * 变量:一小块存储数据的内存空间 |
运算符
一元运算符
:只有一个运算数的运算符
1 | ++,-- , +(正号) |
算数运算符
+ - * / % ...
赋值运算符
= += -+....
比较运算符
1 | > < >= <= == ===(全等于) |
逻辑运算符
1 | && 与(短路) |
三元运算符
1 | ? : 表达式 |
流程控制语句
1 | 1. if...else... |
JS特殊语法
1 | 1. 语句以;结尾,如果一行只有一条语句则 ;可以省略 (不建议) |
基本对象
Function
:函数(方法)对象
1 | 1. 创建: |
Array
:数组对象
更多方法参考
JavaScript Array(数组)对象
JavaScript Array 对象方法
1 | 1. 创建: |
Date
:日期对象
JavaScript Date 对象方法
1 | 1. 创建: |
Math
:数学对象
1 | 1. 创建: |
String
RegExp
:正则表达式对象,可参考
JavaScript RegExp 对象
W3C 正则表达式
正则表达式
- 正则对象
1
2
3
4
5
61. 创建
1. var reg = new RegExp("正则表达式");
2. var reg = /正则表达式/;
3. var reg = /正则表达式/i;忽略大小写
2. 方法
1. test(参数):验证指定的字符串是否符合正则定义的规范
Global
1 | 1. 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。 方法名(); |
BOM
概念
Browser Object Model
浏览器对象模型
【将浏览器的各个组成部分封装成对象】
- BOM组成
1
2
3
4
5* Window:窗口对象
* Navigator:浏览器对象
* Screen:显示器屏幕对象
* History:历史记录对象
* Location:地址栏对象
Window
:窗口对象
参考Window 对象
- 属性:
1
2
3
4
5
6
71. 获取其他BOM对象:
history
location
navigator
screen
2. 获取DOM对象
document - 方法
2.1. 与弹出框有关的方法:2.2. 与打开关闭有关的方法:1
2
3
4
5
6alert(String) 显示带有一段消息和一个确认按钮的警告框。
confirm(String) 显示带有一段消息以及确认按钮和取消按钮的对话框。
* 如果用户点击确定按钮,则方法返回true
* 如果用户点击取消按钮,则方法返回false
prompt(提示,defaultText) 显示可提示用户输入的对话框。
* 返回值:获取用户输入的值2.3. 与定时器有关的方式1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20open() 打开一个新的浏览器窗口
* 返回新的Window对象
close() 关闭浏览器窗口。
* 谁调用我 ,我关谁
//打开新窗口
var openBtn = document.getElementById("openBtn");
var newWindow;
openBtn.onclick = function(){
// open();//打开新的空标签页
newWindow = open("https://www.baidu.com");
}
//关闭新窗口
var closeBtn = document.getElementById("closeBtn");
closeBtn.onclick = function(){
// 关闭新窗口,直接调用会关闭自己
//close();//关闭自己
newWindow.close();//关闭新窗口
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20setTimeout() 在指定的毫秒数后调用函数或计算表达式。
* 参数:
1. js代码或者方法对象
2. 毫秒值
* 返回值:唯一标识,用于取消定时器
clearTimeout() 取消由 setTimeout() 方法设置的 timeout。
setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
clearInterval() 取消由 setInterval() 设置的 timeout。
* 示例
// 执行了这行代码之后,直接执行下一行。
// 执行了这行代码2秒后执行function。一次性。
var id = setTimeout(function(){},2000);
clearTimeout(id);// 取消定时器
// 执行了这行代码之后,直接执行下一行。
// 执行了这行代码3秒后执行function。再过3秒再执行function。重复性。
var id = setInterval(function(){},3000);
clearInterval(id);// 取消定时器 - 特点
1
2* Window对象不需要创建可以直接使用 window使用。 window.方法名();
* window引用可以省略。 方法名();
Location
:地址栏对象
1 | 1. 创建(获取): |
History
:历史记录对象
1 | 1. 创建(获取): |
DOM
简介
- 概念
1
2
3
4`Document Object Model` 文档对象模型
将标记语言文档的各个组成部分,封装为对象。
可以使用这些对象,对标记语言文档进行CRUD的动态操作 - DOM标准三部分
1
2
3
4
5
6
7
8
9
101. 核心 DOM - 针对任何结构化文档的标准模型
* Document:文档对象
* Element:元素对象
* Attribute:属性对象
* Text:文本对象
* Comment:注释对象
* Node:节点对象,其他5个的父对象
2. XML DOM - 针对 XML 文档的标准模型
3. HTML DOM - 针对 HTML 文档的标准模型
核心DOM
Document
:文档对象
参考HTML DOM Document 对象
1 | 1. 创建(获取):在html dom模型中可以使用window对象来获取 |
Element
:元素对象
参考HTML DOM 元素对象
1 | 1. 获取/创建:通过document来获取和创建 |
Node
:节点对象,其他5个的父对象
1 | * 特点:所有dom对象都可以被认为是一个节点 |
HTML DOM
- 标签体的设置和获取:innerHTML
1
2
3
4
5
6
7
81. 获取
document.getElementById("abc").innerHTML;// <font>内容</font>
2. 修改
document.getElementById("abc").innerHTML="bbb";// bbb
3. 追加
document.getElementById("abc").innerHTML+="aaa";// bbbaaa
4. 追加HTML标签
document.getElementById("abc").innerHTML+="<input>";// bbbaaa<input> 标签也会生效 - 使用html元素对象的属性
- 控制元素样式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
201. 使用元素的style属性来设置
如:
var div1 = document.getElementById("div1");
//修改样式方式1
div1.style.border = "1px solid red";
div1.style.width = "200px";
//font-size--> fontSize
div1.style.fontSize = "20px";
2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。
如:
<style>
.d1{
border: 1px solid red;
width: 100px;
height: 100px;
}
</style>
var div2 = document.getElementById("div2");
div2.className = "d1";// 注意这是控制class的
案例_动态表格
案例_动态表格
1 |
|
事件
概念
1 | 某些组件被执行了某些操作后,触发某些代码的执行。 |
绑定方式
1 | <img id="light" src="img/off.gif" onclick="fun();"> |
鼠标事件
1 | + onclick 单击事件 |
焦点事件
1 | + onblur 失去焦点【一般用于表单验证】 |
加载事件
- onload 一张页面或一幅图像完成加载。【一般用于
window.onload
】
键盘事件
1 | + onkeydown 某个键盘按键被按下。 |
表单事件
1 | + onchange 该事件在表单元素的内容改变时触发( <input>, <keygen>, <select>, 和 <textarea>) |
1 | <script> |
拖动事件
1 | + ondragstart 该事件在用户【开始拖动】元素时触发 |
案例
全选&全不选
案例_全选&全不选&反选
1 |
|
表单校验
案例_表单校验
1 |
|