本教程主要参考Google 开发者网站文章和mdn文章,经过翻译整理
JavaScript 负责网页的“互动层”,作为标记提供的“结构”层和由 CSS 提供的“表示性”层的补充。JavaScript 允许开发者通过添加、移除和更改标记和样式来修改网页的结构和呈现方式,以响应用户互动和内部逻辑的任意组合。JavaScript 可让您对网页的呈现和行为进行很大程度的控制,甚至可以改变浏览器的某些内置行为。
本教程主要参考Google 开发者网站文章和mdn文章,经过翻译整理
JavaScript 负责网页的“互动层”,作为标记提供的“结构”层和由 CSS 提供的“表示性”层的补充。JavaScript 允许开发者通过添加、移除和更改标记和样式来修改网页的结构和呈现方式,以响应用户互动和内部逻辑的任意组合。JavaScript 可让您对网页的呈现和行为进行很大程度的控制,甚至可以改变浏览器的某些内置行为。
除了 null 和 undefined 之外,每种原始数据类型都有一个 原型 ,这是相应的对象封装容器,可提供处理值的方法。对基元调用方法或属性查询时,JavaScript 会在后台封装基元,并调用该方法或改为在封装容器对象上执行属性查找。
例如,字符串字面量没有自己的方法,但借助相应的 String 对象封装容器,您可以对其调用 .toUpperCase() 方法:
"this is a string literal".toUpperCase();
> THIS IS A STRING LITERAL
比较运算符会比较两个运算数的值,并评估它们形成的语句是 true 还是 false。以下示例使用严格等式运算符 (===) 来比较两个运算数:表达式 2 + 2 和值 4。由于此表达式的结果与数值 4 相同,因此此表达式的计算结果为 true:
2+2===4
>true
控制流是 JavaScript 解释器执行语句的顺序。如果脚本不包含更改其流程的语句,则将从头开始执行,一次一行。控制结构用于确定是否根据一组定义的条件执行一组语句、重复执行一组语句或中断一系列语句。
条件语句用于确定是否应根据一个或多个条件执行代码。如果关联条件(或一组条件)的求值结果为 true,则条件语句就会执行其包含的代码。否则,系统会跳过此代码。
if…elseif 语句对后面的匹配圆括号内的条件求值。如果圆括号内的条件求值为 true,则执行位于匹配圆括号后面的语句或块语句:
JavaScript 尽管名称是这样,但仅与 Java 相关,因为这两者在语法上有一些相似之处。JavaScript 最初开发的语法在一定程度上受 Java 语法的启发,当它于 1995 年首次发布 Netscape Navigator 测试版时称为“LiveScript”,这既是为了与 Netscape 的其他已命名产品保持一致,也是为了确认其在浏览器中“实时”运行这一事实。不久之后,Microsoft 针对 Internet Explorer 3.0 发布了他们自己的 JavaScript 实现“JScript”。
Netscape 将这项早期工作提交给 Ecma International(一家制定和发布技术标准的组织),用于正式制定并详细说明其他浏览器应如何理解此脚本语言。1997 年,Ecma International 发布了 ECMA-262,对 ECMAScript 这一脚本语言的第一个版本进行了标准化。ECMAScript 是一种标准,用于指导创建更具体的脚本语言,例如,Microsoft 后来开发的 JScript、Adobe 的 ActionScript 和 JavaScript 本身已经不复存在。
类字段直接在类的正文中声明,而不是显式添加为 this 值的属性。但结果是相同的:在该类的实例上定义一个属性。
classMyClass{
myField;
}
const myClassInstance =newMyClass();
myClassInstance;
>MyClass{ myField:undefined}
extends 关键字用于在类声明或表达式中创建一个类,该类充当另一个类的子类,其父类(有时称为“基类”)充当子类(有时称为“子类”或“派生类”)的原型。
classParentClass{}
classChildClassextendsParentClass{}
Object.getPrototypeOf(ChildClass);
>classParentClass{}
ES6 在 JavaScript 中引入了“类”的概念,该概念与其他编程语言中的类不同。在这里,类是一些特殊的函数,可用作模板,用于创建已包含数据的对象、与这些数据相关联的属性以及与处理这些数据相关的方法。这些对象、属性和方法统称为类的成员。
如需定义类,请使用 class 关键字。遵循最佳实践和 JavaScript 的内置构造函数函数建立的惯例,类的任何标识符均以大写字母开头:
classMyClass{}
静态初始化块是一项全新的 JavaScript 功能,已在 ECMAScript 2022 中进行了标准化处理,仅在现代浏览器中受支持。通过静态初始化块,您可以使用跨越多个语句的逻辑动态设置静态字段的值。
如需创建静态初始化块,请使用 static 关键字,后跟大括号 ({}) 中的块语句: