简介
您应该已经了解的内容
本指南假设您具备以下基本背景
- 对互联网和万维网 (WWW) 的一般了解。
- 良好的超文本标记语言 (HTML) 工作知识。
- 一些编程经验。如果您是编程新手,请尝试主页上链接的关于 JavaScript 的教程之一。
在哪里查找 JavaScript 信息
MDN 上的 JavaScript 文档包括以下内容
- 学习 Web 开发 为初学者提供信息并介绍编程和互联网的基本概念。
- JavaScript 指南(本指南)提供有关 JavaScript 语言及其对象的概述。
- JavaScript 参考 提供了 JavaScript 的详细参考材料。
如果您是 JavaScript 新手,请从 学习区域 和 JavaScript 指南 中的文章开始。一旦您牢牢掌握了基础知识,就可以使用 JavaScript 参考 获取有关各个对象和语句的更多详细信息。
什么是 JavaScript?
JavaScript 是一种跨平台的面向对象脚本语言,用于使网页具有交互性(例如,具有复杂的动画、可点击的按钮、弹出菜单等)。JavaScript 还有更高级的服务器端版本,例如 Node.js,它允许您为网站添加比下载文件更多的功能(例如多台计算机之间的实时协作)。在主机环境(例如 Web 浏览器)中,JavaScript 可以连接到其环境的对象,以提供对其进行编程控制。
JavaScript 包含一个标准对象库,例如 Array
、Date
和 Math
,以及一组核心语言元素,例如运算符、控制结构和语句。可以通过补充其他对象来扩展核心 JavaScript 以用于各种目的;例如
- 客户端 JavaScript 通过提供控制浏览器及其文档对象模型 (DOM) 的对象来扩展核心语言。例如,客户端扩展允许应用程序在 HTML 表单上放置元素并响应用户事件,例如鼠标点击、表单输入和页面导航。
- 服务器端 JavaScript 通过提供与在服务器上运行 JavaScript 相关的对象来扩展核心语言。例如,服务器端扩展允许应用程序与数据库通信,在应用程序的一个调用到另一个调用的过程中提供信息的连续性,或在服务器上执行文件操作。
这意味着在浏览器中,JavaScript 可以更改网页 (DOM) 的外观。同样,服务器上的 Node.js JavaScript 可以响应浏览器中执行的代码发送的自定义请求。
JavaScript 和 Java
JavaScript 和 Java 在某些方面相似,但在另一些方面却截然不同。JavaScript 语言类似于 Java,但没有 Java 的静态类型和强类型检查。JavaScript 遵循大多数 Java 表达式语法、命名约定和基本控制流构造,这就是它从 LiveScript 重命名为 JavaScript 的原因。
与 Java 的由声明构建的类编译时系统相反,JavaScript 支持基于少量数据类型的运行时系统,这些数据类型表示数值、布尔值和字符串值。JavaScript 具有基于原型的对象模型,而不是更常见的基于类的对象模型。基于原型的模型提供动态继承;也就是说,继承的内容可以针对各个对象而异。JavaScript 还支持没有任何特殊声明性要求的函数。函数可以是对象的属性,作为松散类型的函数执行。
与 Java 相比,JavaScript 是一种非常自由的语言。您不必声明所有变量、类和方法。您不必担心方法是公共的、私有的还是受保护的,也不必实现接口。变量、参数和函数返回类型没有显式类型化。
Java 是一种基于类的编程语言,旨在实现快速执行和类型安全。例如,类型安全意味着您不能将 Java 整数转换为对象引用或通过破坏 Java 字节码来访问私有内存。Java 的基于类的模型意味着程序完全由类及其方法组成。Java 的类继承和强类型通常需要紧密耦合的对象层次结构。这些要求使 Java 编程比 JavaScript 编程更复杂。
相比之下,JavaScript 的精神源于一系列更小、动态类型的语言,例如 HyperTalk 和 dBASE。由于这些脚本语言的语法更简单、内置功能专门化以及对对象创建的要求最少,因此它们为更广泛的受众提供了编程工具。
JavaScript | Java |
---|---|
面向对象。对象类型之间没有区别。继承是通过原型机制进行的,并且可以动态地向任何对象添加属性和方法。 | 基于类。对象被分成类和实例,所有继承都通过类层次结构进行。类和实例不能动态添加属性或方法。 |
变量数据类型未声明(动态类型,松散类型)。 | 必须声明变量数据类型(静态类型,强类型)。 |
无法自动写入硬盘。 | 可以自动写入硬盘。 |
JavaScript 和 ECMAScript 规范
JavaScript 在 Ecma International(欧洲信息和通信系统标准化协会)(ECMA 以前是欧洲计算机制造商协会的首字母缩写)中标准化,以提供基于 JavaScript 的标准化国际编程语言。这个标准化的 JavaScript 版本称为 ECMAScript,在所有支持该标准的应用程序中的行为方式相同。公司可以使用开放标准语言来开发其 JavaScript 实现。ECMAScript 标准在 ECMA-262 规范中进行了记录。
ECMA-262 标准也获得了 ISO(国际标准化组织)的批准,作为 ISO-16262。您也可以在 Ecma 国际网站 上找到规范。ECMAScript 规范没有描述文档对象模型 (DOM),DOM 由 万维网联盟 (W3C) 和/或 WHATWG(Web 超文本应用技术工作组) 标准化。DOM 定义了 HTML 文档对象如何暴露给您的脚本的方式。要更好地了解使用 JavaScript 编程时使用的不同技术,请参阅文章 JavaScript 技术概述。
JavaScript 文档与 ECMAScript 规范
ECMAScript 规范是一组关于实现 ECMAScript 的要求。如果您希望在您的 ECMAScript 实现或引擎(例如 Firefox 中的 SpiderMonkey 或 Chrome 中的 V8)中实现符合标准的语言特性,它将非常有用。
ECMAScript 文档并非旨在帮助脚本程序员。编写脚本时,请使用 JavaScript 文档获取信息。
ECMAScript 规范使用 JavaScript 程序员可能不熟悉的术语和语法。尽管 ECMAScript 中的语言描述可能有所不同,但语言本身保持不变。JavaScript 支持 ECMAScript 规范中概述的所有功能。
JavaScript 文档描述了适用于 JavaScript 程序员的语言方面。
JavaScript 入门
要开始使用 JavaScript,您只需要一个现代 Web 浏览器。最新版本的 Firefox、Chrome、Microsoft Edge 和 Safari 都支持本指南中讨论的功能。
一个非常有用的探索 JavaScript 的工具是 JavaScript 控制台(有时称为 Web 控制台或仅称为控制台):这是一个允许您输入 JavaScript 并将其在当前页面中运行的工具。
此处的屏幕截图显示了 Firefox Web 控制台,但所有现代浏览器都附带了一个以类似方式工作的控制台。
打开控制台
打开控制台的确切步骤因浏览器而异
输入和运行 JavaScript
控制台显示在浏览器窗口底部。控制台底部有一行输入框,您可以使用它来输入 JavaScript,输出显示在上面的面板中。
控制台的工作方式与eval
完全相同:返回输入的最后一个表达式。为简单起见,可以想象每次在控制台中输入内容时,实际上都围绕eval
使用了console.log
,如下所示
console.log(eval("3 + 5"));
控制台中的多行输入
默认情况下,如果您在输入一行代码后按Enter(或Return,具体取决于您的键盘),则您键入的字符串将被执行。要输入多行输入
- 如果您键入的字符串不完整(例如,您键入了
function foo() {
),则控制台将把Enter视为换行符,并允许您键入另一行。 - 如果您在按Enter的同时按住Shift,则控制台将将其视为换行符,并允许您键入另一行。
- 仅在 Firefox 中,您可以激活 多行输入模式,您可以在其中在一个小型编辑器中输入多行,然后在准备好时运行整个内容。
要开始编写 JavaScript,请打开控制台,复制以下代码,然后将其粘贴到提示符中
(function () {
"use strict";
/* Start of your code */
function greetMe(yourName) {
alert(`Hello ${yourName}`);
}
greetMe("World");
/* End of your code */
})();
按Enter在浏览器中观看其展开!