JS 教程之初识 JavaScript

JavaScript,简称 JS,是当前互联网上最流行、应用最广泛的客户端脚本语言,用来为网页添加一些动态效果或者用户交互功能,在 Web 开发领域有着举足轻重的地位。

认识 JS

前面我们提过,JavaScript 与 HTML 和 CSS 共同构成了我们所看到的网页(W3C 标准模式),其中:

  • HTML 用来定义网页的内容 >>> 例如标题、正文、图像等;
  • CSS 用来控制网页的外观 >>> 例如颜色、字体、背景等;
  • JavaScript 是行为,用来实时更新网页中的内容 >>> 例如从服务器获取数据并更新到网页中,修改某些标签的样式或其中的内容等,可以让网页更加生动。

通俗的来说,JavaScript 是一种可插入 HTML 文档的,由浏览器解释执行的,轻量级脚本编程语言。


JS 的历史

JavaScript 最初被称为 LiveScrip,由 Netscape(Netscape Communications Corporation,网景通信公司)公司的布兰登·艾奇(Brendan Eich)在 1995 年开发。在 Netscape 与 Sun(Sun Microsystems,现已被甲骨文公司收购)合作之后正式更名为了 JavaScript

之所以将 LiveScript 更名为 JavaScript,是因为 JavaScript 是受 Java 的启发而设计的,因此在语法上它们有很多相似之处 ,JavaScript 中的许多命名规范也都借鉴自 Java,还有一个原因就是 为了营销,蹭 Java 的热度

同一时期,微软和 Nombas 公司也分别开发了 JScript 和 ScriptEase 两种脚本语言,与 JavaScript 形成了三足鼎立之势。它们之间没有统一的标准,不能互用。随着版本不同暴露的问题日益加剧,JavaScript 的规范化最终被提上日程。

为了解决这一问题,1997 年,在 ECMA(European Computer Manufacturers Association,欧洲计算机制造商协会)的牵头下,Netscape、Sun、微软、Borland 等公司组成了工作组,并 以 JavaScript1.1 为蓝本制定了 ECMA-262,它是一种名为 ECMAScript 脚本语言标准。

第二年,ISO/IEC(国际标准化组织及国际电工委员会)也采用了 ECMAScript 作为标准(即 ISO/IEC-16262)。


JS Vs ECMAScript

有时人们会将 JavaScript 与 ECMAScript 看作是相同的。其实不然,JavaScript 中所包含的内容远比 ECMA-262 中规定的多得多,完整的 JavaScript 是由以下三个部分组成:

  • 核心(ECMAScript):提供 JS 语言的核心语法和基本对象支持等;
  • 文档对象模型(DOM):提供操作网页内容的方法和接口;
  • 浏览器对象模型(BOM):提供与浏览器进行交互的方法和接口。

也就是说,ECMAScript(核心)只是定义了 JavaScript 脚本语言的基础,而在此基础上通过其它部分(DOM、BOM)构建更完善的 JS 脚本语言。


如何运行 JS

作为一种脚本语言,JavaScript 代码不能独立运行,通常情况下我们需要 借助浏览器来运行 JavaScript 代码,目前所有 Web 浏览器都支持 JavaScript。

除了可以在浏览器中执行外,也可以在 服务端(Nodejs)或者搭载了 JavaScript 引擎的设备 中执行 JavaScript 代码。

浏览器之所以能够运行 JavaScript 代码就是因为浏览器中都嵌入了 JavaScript 引擎。常见的 JavaScript 引擎有:

  • V8 In Chrome && Opera;
  • SpiderMonkey In Firefox;
  • Chakra In
  • ChakraCore In Microsoft Edge;
  • SquirrelFish In Safari。

认识 Node.js

JavaScript 诞生于 1995 年,几乎是和互联网同时出现;Node.js 诞生于 2009 年,比 JavaScript 晚了 15 年左右。

在 Node.js 之前,JavaScript 只能运行在浏览器中,作为网页脚本使用。有了 Node.js 以后,JavaScript 就可以脱离浏览器,像其它编程语言一样直接在计算机(服务器)上使用,想干什么就干什么,再也不受浏览器的限制了。

Node.js 既不是一门新的编程语言,也不是一个 JavaScript 框架,它是 一套基于 V8 引擎的 JavaScript 运行环境,用来支持 JavaScript 代码的执行

用编程术语来讲,Node.js 是一个 JavaScript 运行时(Runtime)

现在的 JavaScript 除了用于 Web 前端编程(网页编程),还能干很多事情,比如:

  • 网站后台(Node.js);
  • CLI 命令行工具(Node.js);
  • 桌面 GUI 程序(Electron);
  • 手机 App(Cordova);
  • 控制硬件-物联网(Ruff);
  • 游戏开发(cocos2d-js)。

也就是说,学会了 JavaScript,你不但是全栈工程师,甚至还将无所不能,这都是 Node.js 带给我们的。


Runtime 详解 >>>

所谓运行时,就是程序在运行期间需要依赖的一系列组件或者工具;把这些工具和组件打包在一起提供给程序员,程序员就能运行自己编写的代码了。

例如:解释器、JS 标准库、JS 本地模块(网络模块、Debugger 模块、HTML 解析模块)等各种组件/工具共同支撑了 JavaScript 代码的运行,它们统称为 JavaScript 运行时。

在 Node.js 之前,JavaScript 运行时被绑定在浏览器中,作为浏览器的各种模块出现。

这意味着,要想运行 JavaScript 代码就必须启动浏览器,JavaScript 逃不出浏览器的手掌心,它的功能受到很大的限制,只能作为网页脚本使用。


JS 特点

JavaScript 具有以下特点:

[1] >>> 解释型脚本语言

JavaScript 是一种解释型脚本语言,与 Java、C/C++ 等语言需要先编译再运行不同,使用 JavaScript 编写的代码不需要编译,可以直接运行。

[2] >>> 面向对象

JavaScript 是一种面向对象语言,使用 JavaScript 不仅可以创建对象,也能操作使用已有的对象。

[3] >>> 弱类型语言

avaScript 是一种弱类型的编程语言,对使用的数据类型没有严格的要求。例如你可以将一个变量初始化为任意类型,也可以随时改变这个变量的类型。

[4] >>> 动态性

JavaScript 是一种采用事件驱动的脚本语言,它不需要借助 Web 服务器就可以对用户的输入做出响应。例如我们在访问一个网页时,通过鼠标在网页中进行点击或滚动窗口时,通过 JavaScript 可以直接对这些事件做出响应。

[5] >>> 跨平台

JavaScript 不依赖操作系统,在浏览器中就可以运行。因此一个 JavaScript 脚本在编写完成后可以在任意系统上运行,只需要系统上的浏览器支持 JavaScript 即可。


Author

Waldeinsamkeit

Posted on

2019-02-01

Updated on

2022-12-26

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.