这篇文章需要编辑方面的审查。
本章节介绍了 JavaScript ,并且讨论了一些基本概念。
你应该知道哪些知识?
该指南假定你拥有如下基础背景:
- 对互联网和万维网 (WWW) 有基本的认识。
- 熟悉超文本标记语言(HTML)。
- 一些编程经验。如果您初识编程,试试主页列出的有关 JavaScript 的教程。
去哪里获得 JavaScript 的信息
MDN 上的 JavaScript 文档包括以下内容:
- 认识Web 为初学者提供信息和介绍一些关于编程和互联网的基本概念。
- JavaScript入门 (本指导) 提供关于JavaScrip这门语言和它的目标的概述。
- JavaScript 参考提供详细的关于JavaScript的参考资料。
如果你刚开始学习JavaScript,请详细阅读 learning area 和 JavaScript Guide 的文章。假如你对JavaScript基础有很深的了解, 你可以使用 JavaScript Reference 来了解更多关于个别对象( individual objects)和语句的细节。
什么是 JavaScript?
JavaScript 是一门跨平台、面向对象的轻量级脚本语言。 在主机环境中, JavaScript能够通过连接环境对象而实现可控制编译。
JavaScript内置了一个包含一系列对象的标准库,比如数组,日期,数学和一个语言元素核心集合包括操作符,流程控制符以及语句等。JavaScript的核心部分可以通过组合已有语言核心对象来扩展语言以适应不同用途;例如:
客户端的JavaScript通过提供控制浏览器及其文档对象模型(DOM)的对象来扩展语言核心。例如:客户端版本直接支持应用将元素放在在HTML表单中并且支持响应用户事件比如鼠标点击、表单提交和页面导航。-
服务端的JavaScript则通过提供有关在服务器上运行JavaScript的对象来可扩展语言核心。例如:服务端版本直接支持应用和数据库通信,提供应用不同调用间的信息连续性,或者在服务器上执行文件操作。
JavaScript 和 Java
JavaScript和Java有一些共性但是在另一些方面有着根本性区别。JavaScript酷似Java但是并没有Java的静态类型和强类型检查特性。JavaScript遵循了Java的表达式语法,命名规范以及基础流程控制,这也是JavaScript从LiveScript更名的原因。
与Java通过声明式构建类的编译时系统不同,JavaScript采用基于少量的数据类型如数字、布尔、字符串值的运行时系统。JavaScript拥有基于原型的对象模型提供的动态继承;也就是说,独立对象的继承是可以改变的。 JavaScript 支持匿名函数。 函数也可以作为对象的属性执行。
与Java相比,Javascript是一门形式自由的语言。你不必声明所有的变量,类和方法。你不必关心方法是否是 共有、私有或者受保护的,也不需要实现接口。无需显式指定变量、参数、方法返回值的数据类型。
Java是基于类的编程语言,设计的初衷就是为了快速执行和类型安全的。类型安全,举例来说,你不能将一个Java 整数变量 转化为一个对象引用,或者由Java字节码访问专有存储器。Java基于类的模型,意味着程序包含专有的类及其方法。Java的类继承和强类型要求紧耦合的对象层级结构。这些要求使得Java编程比JavaScript要复杂的多。
相比之下,JavaScript传承了HyperTalk和dBASE语句精简、动态类型等精髓,为更多开发者提供了一种语法简单、内置功能强大以及用最小需求创建对象的编程工具。
| JavaScript | Java |
|---|---|
| 面向对象。不区分对象类型。通过原型机制继承,任何对象的属性和方法均可以被动态添加。 | 基于类系统。分为类和实例,通过类层级的定义实现继承。不能动态增加对象或类的属性或方法。 |
| 变量类型不需要提前声明(动态类型)。 | 变量类型必须提前声明(静态类型)。 |
| 不能直接自动写入硬盘。 | 可以直接自动写入硬盘。 |
请查看章节对象模型的详情来了解更多JavaScript和Java的不同。
JavaScript 和 ECMAScript 规范
JavaScript 的标准化组织是 ECMA ——这个欧洲信息与通信系统标准化协会提供基于 Javascript 的标准化方案(ECMA 原先是欧洲计算机制造商协会的首字母缩写)。这种标准化版本的JavaScript被称作ECMAScript,在所有支持该标准的应用中以相同的方式工作。公司可以使用开放标准语言来开发他们自己的JavaScript实现版本。ECMAScript标准被记录于ECMA-262规范说明中。 参照 JavaScript的新特性 以便学习更多关于不同版本的JavaScript和ECMAScript规范版本。
ECMA-262 标准也被 ISO (国际标准化组织) 批准为ISO-16262. 你可以从这里 the Ecma International website 找到该规范文件。 ECMAScript 规范并没有描述文件对象模型 (DOM),该模型由 World Wide Web Consortium (W3C) 制定。DOM 定义了HTML文件对象被 脚本 操作的方法。为了更清楚地了解编写JavaScript时用到的不同技术,请参阅 JavaScript technologies overview。
JavaScript 文献 和 ECMAScript 规范
ECMAScript 规范是一套用于实现ECMAScript的要求。如果你想在你的ECMAScript实现版本 或 引擎(例如火狐的SpiderMonkey和Chrome 的V8)中实现标准兼容语言(例如ES6)的特性,这将十分有用.
ECMAScript 文档并不有助于脚本编程。编写脚本时请参考 JavaScript 文档。
ECMAScript 规范 使用的术语和语法 对于一个JS程序员来说有可能有些生疏。尽管在ECMAScript中对于语言的描述有所不同,但语言本身是一样的。JavaScript支持的所有功能都会在ECMAScript规范描述中罗列出来。
JavaScript 文档中描述了适合JavaScript程序员 的信息。
JavaScript上手
Javascript的上手是非常简单的,你仅仅只需要一个现代化的浏览器。这篇教程包含了一些只在最新版本的火狐浏览器上才有的功能,所以建议大家使用最新版本的火狐浏览器。
火狐内置了两款非常棒的工具用来实验JavaScript:浏览器控制台和代码草稿纸。
浏览器控制台
控制台 不仅可以展示当前已加载页面的信息还包含一个可以在当前页执行js代码的 命令行。
在火狐浏览器菜单栏的”工具“=>"Web开发者"=>"Web控制台"可以打开控制台,它会如期出现在浏览器窗口的底部。如图,最下一行就是可以执行输入的命令行,面板上可以显示执行结果:

代码草稿纸
浏览器控制台对于执行单行JS命令来说十分便捷,但仅管你也可以执行多行命令,这(控制台)并不方便。除此之外,使用控制台,你无法保存你的代码片段。因此对于更为复杂的代码片段,Scratchpad代码草稿纸 是一个更好的选择.
从“网页开发者”菜单(在火狐浏览器的“工具”目录下)中选择“代码草稿纸”来打开它。它是一个拥有独立窗口的编辑器,你可以用来编辑和在浏览器中执行JavaScript。你也可以将代码保存到本地磁盘,或者从本地载入。
如果你选择查看,草稿纸中的代码会在浏览器中执行,并在内容后面以注释的形式插入返回的结果:

Hello world
学习 JavaScript 的第一步,打开浏览器的代码调试器尝试写你的第一个 JavaScript 版本的“Hello world”程序。
function greetMe(user) {
return "Hi " + user;
}
greetMe("Alice"); // "Hi Alice"
在Scratchpad(代码草稿纸)中选择要执行的代码,然后点击快捷键Ctrl+R就可以在浏览器中看到选中代码的执行结果。
在接下来的章节里,该指南将介绍JavaScript的语法以及语言特性,届时你将可以使用它编写更加复杂的程序。