📝 使用这份新手速查表,以正确的方式学习 JavaScript
目录
- 基本面
- 变量
- 数据类型
- 操作员
- 函数
- 大批
- 循环
- 如果-否则
- 字符串
- 正则表达式
- 数据转换
- JavaScript 中的日期处理
- JavaScript 中的文档对象模型 (DOM)
- JavaScript 数字与数学
- 活动
- 错误
- 使用浏览器
1. JavaScript基础知识
以下是如何在您的网站中添加 JavaScript 的基本步骤。
- 在HTML代码中,JavaScript的写法如下:
在 HTML 页面中添加 JavaScript 代码需要将其包含在<script><script> 标签内,如下所示:
<script type = "text/javascript">
//JavaScript coding can be done inside this tag
</script>
通过此输入,浏览器可以正确识别并执行代码。
- 在 HTML 文件中包含外部 JavaScript 文件:
也可以创建一个单独的 JavaScript 文件,并将其包含在我们的 HTML 文件中。
将不同类型的代码分开存放,可以使文件组织得更好,并且可以将不同类型的代码彼此隔离。
例如,如果我们的 JavaScript 代码位于 script.js 文件中,我们可以按以下方式将 JavaScript 代码包含到 HTML 文件中:
<script src="script.js"></script>
- 包括评论:
在代码中添加注释可以帮助其他人理解你的操作,或者提醒你自己是否遗漏了某些内容。
注意:为了防止浏览器尝试执行这些注释,必须正确标记它们。
在 JavaScript 中,你有两种不同的选择:
单行注释——如果您想添加仅限一行的注释,请在注释前加上 `<script>`标签。//
多行注释——如果您想在多行之间添加较长的注释,请将其用 `<script>` 标签包裹起来/*,以*/避免被强制执行。
2. JavaScript 变量
JavaScript 变量实际上就是以名称命名的存储位置。
因此,我们可以在 JavaScript 代码中使用它们作为占位符,通过它们可以执行各种操作。
在 JavaScript 中使用变量有三种方法:var— 最常见的变量是 `var`。它可以被重新赋值,但只能在函数内部访问。使用 `var` 会将变量移动到代码执行时的顶部。
var x = 140; // variable x can be reassigned a new value and also redeclared
const— 无法重新分配,且在出现在程序中之前无法访问。
const x = 5; // variable x cannot be reassigned a new value or redeclared
let— 与 const 类似,let 变量可以重新赋值,但不能重新声明。
let x = 202; // variable x cannot be redeclared but can be reassigned a new value
3. JavaScript 数据类型
JavaScript 中的变量可以存储各种值和数据。您可以使用等号 ("=") 运算符为 JavaScript 变量赋值。JavaScript 具有以下数据类型:
- 数字:可以是实数或整数。
var id = 50
- 变量:与固定值不同,变量数据类型没有固定值。
var x
- 文本(字符串):字符串是 JavaScript 数据最基本的类型。
var demoString = "Hello! World"
- 操作:JavaScript 变量可以被赋予操作。
var mul = 10*9
- 布尔值:布尔值只有真或假两种类型。
var booleanValue = true
- 常量:这些数据类型具有常量值。const
l = 8.8
- JavaScript 对象:它们是用于存储具有名称的属性的容器。JavaScript 对象包含方法和成员。
var name = {name:"Jon Snow", id:"AS123"}
4. JavaScript 运算符
变量允许你对它们执行各种类型的操作。运算符可以帮助你做到这一点。
操作员分为 4 种类型
- 基本算符:
| 操作员 | 描述 |
|---|---|
| + | 添加 |
| - | 减法 |
| * | 乘法 |
| / | 分配 |
| (……) | 分组运算符中,括号内的操作会比括号外的操作更早执行。 |
| % | 模数(余数) |
| ++ | 增量数字 |
| -- | 递减数 |
- 位运算符:
| 操作员 | 描述 |
|---|---|
| & | 声明 |
| ~ | 不是 |
| ^ | 异或 |
| << | 左移 |
| >> | 右移 |
| >>> | 零填充右移 |
- 比较运算符:
| 操作员 | 描述 |
|---|---|
| == | 等于 |
| === | 等值且类型相同 |
| != | 不等于 |
| !== | 值不相等或类型不相等 |
| > | 大于 |
| < | 少于 |
| 大于等于 | 大于或等于 |
| <= | 小于或等于 |
| ? | 三元运算符 |
- 逻辑运算符:
| 操作员 | 描述 |
|---|---|
| 和& | 合乎逻辑且 |
| ! | 逻辑非 |
5. JavaScript 函数
JavaScript 函数是一段执行特定任务的代码块。它们看起来像这样:
function nameOfTheFunction(parameterOne, parameterTwo, parameterThree, parameterFour,....,parameterN) {
// Job or Task of the function
}
- 数据输出函数 函数通常用于输出数据。输出方式有多种选择:
| 功能 | 描述 |
|---|---|
| 警报() | 在浏览器窗口的提示框中输出数据 |
| 确认() | 打开一个“是/否”对话框并返回真/假。 |
| console.log() | 将信息写入浏览器控制台,有利于调试。 |
| document.write() | 直接写入 HTML 文档 |
| 迅速的() | 创建用户输入对话框 |
- 全局函数全局函数是内置于每个能够运行 JavaScript 的浏览器中的函数。
| 功能 | 描述 |
|---|---|
| decodeURI() | 解码由 encodeURI 或类似函数创建的统一资源标识符 (URI)。 |
| decodeURIComponent() | 解码 URI 组件 |
| encodeURI() | 将 URI 编码为 UTF-8 格式 |
| encodeURIComponent() | 同样适用于 URI 组件 |
| eval() | 执行以字符串形式表示的 JavaScript 代码 |
| isFinite() | 判断传入的值是否为有限值 |
| isNaN() | 判断一个值是否为 NaN。 |
| 数字() | 返回由其参数转换而来的数字 |
| parseFloat() | 解析参数并返回一个浮点数 |
| parseInt() | 解析其参数并返回一个整数 |
6. JavaScript 数组
数组是一种特殊的变量,它可以保存多个值:
const cars = ["Saab", "Volvo", "BMW"];
- 数组方法:
它可用于执行各种类型的操作。
| 方法 | 描述 |
|---|---|
| 流行音乐() | 此方法用于删除数组的最后一个元素。 |
| 推() | 此方法用于在数组的末尾添加新元素。 |
| concat() | 此方法用于将多个数组合并成一个数组。 |
| 撤销() | 此方法用于反转数组中元素的顺序。 |
| 转移() | 此方法用于删除数组的第一个元素。 |
| 片() | 此方法用于将数组的一部分复制到新数组中。 |
| 拼接() | 此方法用于以特定方式和位置添加元素。 |
| toString() | 此方法用于将数组元素转换为字符串。 |
| 取消偏移() | 此方法用于在数组开头添加新元素。 |
| valueOf() | 此方法用于返回给定对象的基本值。 |
| indexOf() | 此方法用于返回给定元素在数组中出现的第一个索引。 |
| lastIndexOf() | 此方法用于返回给定元素在数组中出现的最后一个索引。 |
| 加入() | 此方法用于将数组中的元素合并成一个字符串并返回它。 |
| 种类() | 此方法用于根据某些条件对数组元素进行排序。 |
数组是一种特殊的变量,它可以保存多个值:
const cars = ["Saab", "Volvo", "BMW"];
7. JavaScript 循环
几乎所有编程语言都包含循环。它允许你使用不同的值无限期地运行代码块:
forloop:JavaScript 中创建循环最常用的方法。
for (initialization of the loop variable; condition checking for the loop; updation after the loop) {
// code to be executed in loop
}
whileloop:决定循环何时运行。// loop 变量的初始化在 while 循环开始之前完成。
while(condition checking for the loop){
// 1. code to be executed in loop
// 2. updation of the loop variable
}
do-whiledo-while 循环:类似于 while 循环,它至少运行一次,并在循环结束时检查是否存在再次运行的条件。// 循环变量的初始化在 do-while 循环开始之前完成。
do{
// 1. code to be executed in loop
// 2. updation of the loop variable
}while(condition checking for the loop);
关于循环,有两点需要特别注意:
continue 语句:如果满足特定条件,则跳过循环的某些部分。break
语句:当满足指定条件时,退出循环。
8. JavaScript If-Else
在 JavaScript 中,if-else 语句用于根据条件执行代码块。它们用于设置代码块执行的条件。有些情况下会执行某些代码块,而有些情况下则不会。
if (condition)
{
// Executes this block if
// condition is true
}
else
{
// Executes this block if
// condition is false
}
9. JavaScript 字符串
在 JavaScript 中,字符串用于表示不执行任何功能但可以显示的文本。
var Name = "John Cena";
在这种情况下,约翰·塞纳就是那根弦。
以下是 JavaScript 中的所有转义序列,以及 JavaScript 为字符串提供的所有方法:
- 使用单引号或双引号标记字符串时,需要在 JavaScript 中使用转义字符。字符串中的引号需要使用特殊字符:
| 特点 | 描述 |
|---|---|
| \' | 单引号 |
| “ | 双引号 |
| \t | 水平标签 |
| \v | 垂直标签 |
| \ | 反斜杠 |
| \b | 退格键 |
| \f | 进纸 |
| \n | 换行符 |
| \r | 回车 |
- 字符串方法:字符串可以通过多种不同的方式进行操作:
| 方法 | 描述 |
|---|---|
| charAt() | 返回字符串中指定位置的字符 |
| charCodeAt() | 获取该位置字符的 Unicode 编码 |
| concat() | 将两个或多个字符串连接成一个字符串。 |
| fromCharCode() | 返回由指定的 UTF-16 代码单元序列创建的字符串 |
| indexOf() | 提供指定文本在字符串中首次出现的位置 |
| lastIndexOf() | 与 indexOf() 类似,但返回最后一次匹配项,即向后搜索。 |
| 匹配() | 检索字符串与搜索模式的匹配项 |
| 代替() | 在字符串中查找并替换指定的文本 |
| 搜索() | 执行搜索以查找匹配文本并返回其位置。 |
| 片() | 提取字符串的一部分并将其作为新字符串返回。 |
| 分裂() | 将字符串对象在指定位置分割成字符串数组。 |
| substr() | 类似于 slice() 函数,但它会根据指定的字符数提取子字符串。 |
| 子字符串() | 与 slice() 类似,但不能接受负索引。 |
| 转换为小写() | 将字符串转换为小写 |
| 转换为大写() | 将字符串转换为大写 |
| valueOf() | 返回字符串对象的基本值(不包含任何属性或方法)。 |
10. JavaScript 正则表达式
字符串可以通过正则表达式进行匹配,正则表达式是一种搜索模式。它们可用于文本搜索和文本替换。
- 模式修饰符
| 图案 | 描述 |
|---|---|
| e | 评估替代方案 |
| 我 | 执行不区分大小写的匹配 |
| 克 | 执行全局匹配 |
| 米 | 执行多行匹配 |
| s | 将字符串视为单行 |
| x | 允许在图案中添加注释和空格 |
| U | 不贪婪的模式 |
- 括号
| 操作员 | 描述 |
|---|---|
| [abc] | 找出括号之间的任意字符 |
| [^abc] | 找出所有不在括号内的字符 |
| [0-9] | 用于查找 0 到 9 之间的任意数字。 |
| [Az] | 找出从大写字母 A 到小写字母 z 之间的任意字符 |
| (一个 | b |
- 元角色
| 操作员 | 描述 |
|---|---|
| 。 | 查找除换行符或行终止符之外的单个字符 |
| \w | 单词字符 |
| \W | |
| \d | 一个数字 |
| \D | 非数字字符 |
| \s | 空格字符 |
| \S | 非空白字符 |
| \b | 查找单词开头/结尾的匹配项 |
| \B | 不在单词开头/结尾的匹配项 |
| \0 | 空字符 |
| \n | 新的线条字符 |
| \f | 进纸字符 |
| \r | 回车符 |
| \t | 制表符 |
| \v | 垂直制表符 |
| xxx | 由八进制数 xxx 指定的字符 |
| \xdd | 由十六进制数 dd 指定的字符 |
| \uxxxx | 由十六进制数 XXXX 指定的 Unicode 字符 |
- 量词
| 操作员 | 描述 |
|---|---|
| n+ | 匹配包含至少一个 n 的任何字符串。 |
| n* | 任何包含零个或多个 n 的字符串 |
| n? | 包含零个或一个数字 n 的字符串。 |
| n{X} | 包含 X 个 n 的字符串 |
| n{X,Y} | 包含从 X 到 Y n 的序列的字符串 |
| n{X,} | 匹配包含至少 X 个 n 的序列的任何字符串 |
| n$ | 任何以 n 结尾的字符串 |
| ^n | 以字母 n 开头的字符串 |
| ?=n | 任何后跟特定字符串 n 的字符串 |
| ?!n | 后面不跟特定字符串的字符串 |
11. 数据转换
“数据转换”是指将一种格式转换为另一种格式。使用高阶 JavaScript 函数,您可以接受两个或多个函数作为输入,并返回一个结果函数,从而实现数据转换。`map()`、`filter()` 和 `reduce()` 都是接受函数作为输入的高阶函数。
Map()JavaScript 的 map() 方法通过对父数组的每个元素调用特定函数来创建一个新数组。遍历数组并对每个元素调用函数可以通过以下方式实现:
map(), a non-mutating method.
var arr = [10,20,30];
var triple = arr.map(x => x * 3);
triple; // [30,60,90]
filter()使用 arr.filter(),可以生成一个新数组,该数组仅包含给定数组中满足给定条件和标准的元素。
var arr = [13,40,47];
var odd = arr.filter(x => x % 2);
odd; // [13,47]
Reduce()在 JavaScript 中使用时,arr.reduce() 方法通过对每个值(从左到右)运行提供的函数,并将输出存储在累加器中,将给定的数组缩减为单个值。
var arr = [10,20,30];
var counter = 0;
let answer = arr.reduce((accumulator, value) => value + accumulator, counter);
console.log(answer) // answer = 10 + 20 + 30 = 60
12. 在 JavaScript 中处理日期
JavaScript 中的日期处理
您还可以使用 JavaScript 处理和修改日期和时间。这是 JavaScript 速查表的下一章。
- 设定日期
| 方法 | 描述 |
|---|---|
| 日期() | 创建一个新的日期对象,包含当前日期和时间 |
| Date(2017, 5, 21, 3, 23, 10, 0) | 创建自定义日期对象。 |
| 日期(“2017-06-23”) | 日期声明为字符串 |
- 提取日期和时间值
| 特性 | 描述 |
|---|---|
| 获取日期() | 获取月份中的日期(1-31) |
| getDay() | 星期几用数字表示(0-6) |
| 获取全年数据() | 年份以四位数表示(yyyy) |
| 获取工时() | 获取小时数(0-23) |
| 获取毫秒数() | 毫秒(0-999) |
| getMinutes() | 获取分钟数(0-59) |
| getMonth() | 月份以数字形式表示(0-11) |
| getSeconds() | 获取第二个(0-59) |
| getTime() | 获取自 1970 年 1 月 1 日以来的毫秒数 |
| 获取UTC日期() | 根据世界时,指定日期的月份中的日期(也可提供日、月、年、小时、分钟等信息)。 |
| 解析 | 解析日期字符串表示形式,并返回自 1970 年 1 月 1 日以来的毫秒数。 |
- 设置日期的一部分
| 特性 | 描述 |
|---|---|
| 设置日期() | 将日期设置为数字(1-31) |
| 设置全年 | 设置年份(可选月份和日期) |
| 设置小时数() | 设置小时(0-23) |
| 设置毫秒数() | 设置毫秒数(0-999) |
| setMinutes() | 设置分钟数(0-59) |
| 设置月份() | 设置月份(0-11) |
| setSeconds() | 设置秒数(0-59) |
| 设置时间() | 设置时间(自 1970 年 1 月 1 日以来的毫秒数) |
| 设置UTC日期() | 根据世界协调时设置指定日期的月份中的日期(也可设置日、月、年、小时、分钟等)。 |
13. JavaScript 中的文档对象模型 (DOM)
网站的代码以文档对象模型(DOM)的形式组织。JavaScript 允许你以多种不同的方式构建和修改 HTML 元素(称为节点)。
- 节点属性
| 特性 | 描述 |
|---|---|
| 属性 | 返回元素所有已注册属性的实时集合 |
| 基本URI | 提供 HTML 元素的绝对基本 URL |
| 子节点 | 返回元素的所有子节点的集合 |
| 第一个孩子 | 返回元素的第一个子节点 |
| 最后一个孩子 | 元素的最后一个子节点 |
| 下一个兄弟姐妹 | 返回同一节点树层级的下一个节点 |
| 节点名称 | 返回节点名称 |
| 节点类型 | 返回节点的类型 |
| 节点值 | 设置或返回节点的值 |
| 所有者文档 | 此节点的顶级文档对象 |
| 父节点 | 返回元素的父节点 |
| 前兄弟姐妹 | 返回当前节点之前的节点。 |
| 文本内容 | 设置或返回节点及其后代的文本内容 |
- 节点方法
| 方法 | 描述 |
|---|---|
| appendChild() | 向元素添加一个新的子节点,作为最后一个子节点。 |
| 克隆节点() | 克隆一个 HTML 元素 |
| compareDocumentPosition() | 比较两个元素在文档中的位置 |
| 获取特征() | 返回一个实现了指定功能 API 的对象 |
| hasAttributes() | 如果元素有任何属性,则返回 true,否则返回 false。 |
| hasChildNodes() | 如果元素有任何子节点,则返回 true,否则返回 false。 |
| insertBefore() | 在指定的现有子节点之前插入一个新的子节点 |
| isDefaultNamespace() | 如果指定的命名空间URI是默认值,则返回true,否则返回false。 |
| isEqualNode() | 检查两个元素是否相等 |
| isSameNode() | 检查两个元素是否为同一节点 |
| isSupported() | 如果元素支持指定的功能,则返回 true |
| lookupNamespaceURI() | 返回与给定节点关联的命名空间 URI |
| lookupPrefix() | 返回一个 DOMString,其中包含给定命名空间 URI 的前缀(如果存在)。 |
| normalize() | 合并元素中相邻的文本节点并删除空文本节点。 |
| removeChild() | 从元素中移除子节点 |
| 替换子项() | 替换元素中的子节点 |
- 元素方法
| 方法 | 描述 |
|---|---|
| getAttribute() | 返回元素节点的指定属性值 |
| getAttributeNS() | 返回具有指定命名空间和名称的属性的字符串值 |
| getAttributeNode() | 获取指定的属性节点 |
| getAttributeNodeNS() | 返回具有给定命名空间和名称的属性的属性节点 |
| getElementsByTagName() | 提供具有指定标签名称的所有子元素的集合 |
| getElementsByTagNameNS() | 返回一个包含具有特定标签名称且属于给定命名空间的元素的实时 HTMLCollection。 |
| hasAttribute() | 如果元素有任何属性,则返回 true,否则返回 false。 |
| hasAttributeNS() | 提供一个真/假值,指示给定命名空间中的当前元素是否具有指定的属性。 |
| removeAttribute() | 从元素中移除指定的属性 |
| removeAttributeNS() | 从特定命名空间内的元素中移除指定的属性。 |
| removeAttributeNode() | 移除指定的属性节点,并返回被移除的节点。 |
| setAttribute() | 将指定属性设置或更改为指定值 |
| setAttributeNS() | 添加新属性或更改具有给定命名空间和名称的属性的值 |
| setAttributeNode() | 设置或更改指定的属性节点 |
| setAttributeNodeNS() | 向元素添加一个新的命名空间属性节点 |
14. JavaScript 数字与数学
JavaScript 也支持数学函数和常量运算。
- 数字属性
| 特性 | 描述 |
|---|---|
| 最大值 | JavaScript 中可表示的最大数值 |
| 最小值 | JavaScript 中可表示的最小正数值 |
| 钠 | “非数字”值 |
| 负无穷大 | 负无穷值 |
| 正无穷 | 正无穷值 |
- 数字方法
| 方法 | 描述 |
|---|---|
| 到指数() | 返回以指数形式表示的四舍五入数字的字符串 |
| toFixed() | 返回一个包含指定小数位数的数字字符串。 |
| 精确到精度() | 以指定长度写入的数字字符串 |
| toString() | 返回一个字符串形式的数字。 |
| valueOf() | 返回一个数字。 |
- 数学性质
| 特性 | 描述 |
|---|---|
| E | 欧拉数 |
| 液氮 | 2 的自然对数 |
| LN10 | 10 的自然对数 |
| LOG2E | E 的以 2 为底的对数 |
| LOG10E | 以 10 为底的 E 的对数 |
| PI | 圆周率(PI) |
| 平方根1_2 | 1/2 的平方根 |
| 平方根 | 2 的平方根 |
- 数学方法
| 方法 | 描述 |
|---|---|
| abs(x) | 返回 x 的绝对值(正值)。 |
| acos(x) | x 的反余弦值(弧度) |
| asin(x) | x 的反正弦值,以弧度为单位 |
| atan(x) | x 的反正切值(数值形式) |
| atan2(y,x) | 其论元商的反正切 |
| ceil(x) | x 的值向上取整到最接近的整数 |
| cos(x) | x 的余弦值(x 的单位为弧度) |
| exp(x) | Ex 的价值 |
| floor(x) | x 的值向下取整到最接近的整数 |
| log(x) | x 的自然对数(以 E 为底) |
| max(x,y,z,...,n) | 返回数值最大的数字 |
| min(x,y,z,...,n) | 最小值也一样 |
| pow(x,y) | X 的 y 次方 |
| 随机的() | 返回一个介于 0 和 1 之间的随机数 |
| round(x) | x 的值四舍五入到最接近的整数 |
| sin(x) | x 的正弦值(x 的单位为弧度) |
| sqrt(x) | x 的平方根 |
| tan(x) | 角的正切值 |
15. JavaScript 事件
事件是指用户对 HTML 元素执行的操作。编程语言可以监听这些事件,并在代码中触发相应的操作。任何 JavaScript 速查表都不能缺少事件。
- 老鼠
| 特性 | 描述 |
|---|---|
| 点击 | 当用户点击某个元素时,就会发生此事件。 |
| 上下文菜单 | 用户右键单击某个元素以打开上下文菜单 |
| 双击 | 用户双击某个元素 |
| 鼠标向下 | 用户将鼠标按钮按在元素上 |
| 鼠标进入 | 指针移动到一个元素上 |
| onmouseleave | 指针移出元素 |
| onmousemove | 指针在元素上方移动 |
| 鼠标悬停 | 当指针移动到某个元素或其子元素上时 |
| 鼠标移出 | 用户将鼠标指针移出某个元素或其子元素。 |
| onmouseup | 用户在元素上方松开鼠标按钮 |
- 键盘
| 特性 | 描述 |
|---|---|
| 按键按下 | 当用户按下某个键时 |
| 按键 | 用户开始按下某个键的那一刻 |
| 按键抬起 | 用户释放密钥 |
- 框架
| 特性 | 描述 |
|---|---|
| 中止 | 媒体加载已中止 |
| onbeforeunload | 事件发生在文档即将卸载之前。 |
| 错误 | 加载外部文件时发生错误 |
| onhashchange | URL的锚点部分发生了一些变化。 |
| 加载 | 当对象加载完毕后 |
| 页面隐藏 | 用户离开网页 |
| 页面显示 | 当用户浏览网页时 |
| onresize | 文档视图已调整大小 |
| 滚动 | 元素的滚动条正在滚动 |
| 卸载 | 事件发生在页面卸载时。 |
- 形式
| 特性 | 描述 |
|---|---|
| 模糊 | 当一个元素失去焦点时 |
| onchange | 表单元素的内容会发生变化(对于,和)。 |
| 聚焦 | 元素获得焦点 |
| 聚焦 | 当一个元素即将获得焦点时 |
| 焦点消失 | 该元素即将失去焦点 |
| 输入 | 用户对元素的输入 |
| oninvalid | 元素无效 |
| 重置 | 表单已重置 |
| 搜索 | 用户在搜索框中输入内容(用于) |
| 上选择 | 用户选择一些文本(用于和) |
| 提交 | 表格已提交 |
- 拖
| 特性 | 描述 |
|---|---|
| 拖拽 | 拖动一个元素 |
| 拖曳 | 用户已完成元素拖动。 |
| 昂德拉根特 | 拖动的元素进入放置目标 |
| 拖曳叶 | 拖动的元素会离开放置目标。 |
| 拖曳 | 拖动的元素位于放置目标的上方 |
| 拖拽启动 | 用户开始拖动元素 |
| 掉落 | 拖动的元素被放置在目标位置 |
- 剪贴板
| 特性 | 描述 |
|---|---|
| 副本 | 用户复制元素的内容 |
| 切割 | 用户剪切元素的内容 |
| 粘贴 | 用户将内容粘贴到元素中 |
- 媒体
| 特性 | 描述 |
|---|---|
| 中止 | 媒体加载已中止 |
| oncanplay | 浏览器可以开始播放媒体(例如,文件已缓冲足够多的内容) |
| oncanplaythrough | 浏览器可以不间断地播放媒体文件。 |
| 持续时间变化 | 媒体变革的持续时间 |
| 结束 | 媒体已经走到尽头。 |
| 错误 | 加载外部文件时发生错误时会触发此事件 |
| 加载数据 | 媒体数据已加载 |
| 已加载元数据 | 加载元数据(例如维度和持续时间)。 |
| onloadstart | 浏览器开始查找指定的媒体 |
| 暂停 | 媒体播放可由用户手动暂停,也可自动暂停。 |
| 游戏 | 媒体报道已经启动或不再暂停。 |
| 正在播放 | 媒体文件在暂停或缓冲后正在播放 |
| 进行中 | 浏览器正在下载媒体文件 |
| onratechange | 媒体播放速度的变化 |
| 寻找 | 用户已完成在媒体中的移动/跳转。 |
| 寻找 | 用户开始移动/跳跃 |
| 已安装 | 浏览器正在尝试加载媒体文件,但该文件不可用。 |
| 暂停 | 浏览器故意不加载媒体文件。 |
| 及时更新 | 比赛位置发生了变化(例如,由于快进的原因)。 |
| 音量变化 | 媒体音量已更改(包括静音) |
| 等待中 | 媒体播放暂停,但预计会恢复(例如,正在缓冲)。 |
- 动画片
| 特性 | 描述 |
|---|---|
| 动画结束 | CSS动画已完成 |
| 动画迭代 | CSS动画重复 |
| 动画开始 | CSS动画已开始 |
- 其他
| 特性 | 描述 |
|---|---|
| 过渡结束 | 当 CSS 过渡完成后触发 |
| onmessage | 通过事件源接收到消息 |
| 在线/离线 | 浏览器开始离线工作。 |
| 在线 | 浏览器开始联网运行。 |
| 人口状态 | 当窗口历史记录发生变化时 |
| 正在播放 | 元素以上下文菜单的形式显示。 |
| 存储中 | Web 存储区域已更新 |
| 切换 | 用户打开或关闭元素 |
| 车轮 | 鼠标滚轮在元素上上下滚动 |
| 触摸取消 | 屏幕触摸中断 |
| 触及结束 | 用户手指从触摸屏上移开 |
| ontouchmove | 一根手指在屏幕上拖动 |
| 触摸启动 | 手指放在触摸屏上 |
16. JavaScript 错误
在使用 JavaScript 时,可能会出现各种错误。处理这些错误的方法有很多种:
| 特性 | 描述 |
|---|---|
| 尝试 | 允许您定义一段代码块来测试错误。 |
| 抓住 | 设置一个代码块,以便在发生错误时执行。 |
| 扔 | 创建自定义错误消息,而不是标准的 JavaScript 错误。 |
| 最后 | 允许你在 try 和 catch 语句之后执行代码,而不管结果如何。 |
- 错误名称值
JavaScript 还内置了一个错误对象。它有两个属性:
| 特性 | 描述 |
|---|---|
| 姓名 | 设置或返回错误名称 |
| 信息 | 设置或返回字符串形式的错误消息 |
error 属性可以返回六个不同的值作为其名称:
| 方法 | 描述 |
|---|---|
| 评估错误 | eval() 函数中发生错误 |
| 范围误差 | 某个数字“超出范围” |
| 参考错误 | 发生了非法引用 |
| 语法错误 | 发生语法错误 |
| TypeError | 发生类型错误 |
| URI错误 | 发生 encodeURI() 错误 |
17. JavaScript 与浏览器的交互
除了 HTML 元素之外,JavaScript 还能考虑用户浏览器并将其属性融入代码中。
- 窗口属性
| 方法 | 描述 |
|---|---|
| 关闭 | 检查窗口是否已关闭,并返回 true 或 false。 |
| 默认状态 | 设置或返回窗口状态栏中的默认文本 |
| 文档 | 返回窗口的文档对象。 |
| 框架 | 返回当前窗口中的所有元素 |
| 历史 | 为窗口提供 History 对象。 |
| 内部高度 | 窗口内容区域的内部高度 |
| 内部宽度 | 内容区域的内部宽度 |
| 长度 | 找出窗口中的元素数量。 |
| 地点 | 返回窗口的位置对象。 |
| 姓名 | 设置或返回窗口的名称 |
| 航海家 | 返回窗口的 Navigator 对象。 |
| 开场 | 返回对创建该窗口的窗口的引用 |
| 外高度 | 窗口的外部高度,包括工具栏/滚动条 |
| 外宽度 | 窗口的外部宽度,包括工具栏/滚动条 |
| 页面 X 偏移 | 当前文档水平滚动的像素数 |
| 页面 Y 偏移 | 文档垂直滚动的像素数 |
| 父母 | 当前窗口的父窗口 |
| 屏幕 | 返回窗口的 Screen 对象 |
| 屏幕左侧 | 窗口的水平坐标(相对于屏幕) |
| 屏幕顶部 | 窗口的垂直坐标 |
| screenX | 与 screenLeft 相同,但某些浏览器需要它。 |
| screenY | 与 screenTop 功能相同,但某些浏览器需要此功能。 |
| 自己 | 返回当前窗口 |
| 地位 | 设置或返回窗口状态栏中的文本 |
| 顶部 | 返回最顶层的浏览器窗口 |
- 窗口方法
| 方法 | 描述 |
|---|---|
| 警报() | 显示一个包含消息和“确定”按钮的提示框 |
| 模糊() | 移除当前窗口的焦点 |
| 清除间隔() | 清除使用 setInterval() 设置的定时器。 |
| 清除超时() | 清除使用 setTimeout() 设置的定时器。 |
| 关闭() | 关闭当前窗口 |
| 确认() | 显示一个对话框,其中包含一条消息以及“确定”和“取消”按钮。 |
| 重点() | 将焦点设置到当前窗口 |
| moveBy() | 将窗口相对于其当前位置移动 |
| 移动到() | 将窗口移动到指定位置 |
| 打开() | 打开一个新的浏览器窗口 |
| 打印() | 打印当前窗口的内容 |
| 迅速的() | 显示一个对话框,提示访问者输入内容 |
| 调整大小() | 将窗口大小调整为指定的像素数。 |
| 调整大小() | 将窗口调整为指定的宽度和高度 |
| scrollBy() | 将文档滚动指定的像素数。 |
| scrollTo() | 将文档滚动到指定坐标。 |
| 设置间隔() | 按指定时间间隔调用函数或计算表达式 |
| 设置超时() | 在指定的时间间隔后调用函数或计算表达式。 |
| 停止() | 阻止窗口加载 |
- 屏幕属性
| 特性 | 描述 |
|---|---|
| 可用高度 | 返回屏幕高度(不包括 Windows 任务栏) |
| 可用宽度 | 返回屏幕宽度(不包括 Windows 任务栏) |
| 颜色深度 | 返回用于显示图像的颜色调色板的位深度 |
| 高度 | 屏幕的总高度 |
| 像素深度 | 屏幕的颜色分辨率,单位为每像素比特数。 |
| 宽度 | 屏幕的总宽度 |
