第1章 JavaScript概要


1.1 JavaScript概要

JavaScript领域的名人道格拉斯·克罗克福德曾把JavaScript称为Web上的虚拟机。

【评】使用过虚拟机的小伙伴应该都知道,虚拟机顾名思义“虚拟的机器”,简直是买一送一,相当于有了两台电脑,但是,JavaScript是Web上的虚拟机,额,不太理解。

1.2 JavaScript的历史

虽然Java和JavaScript的命名导致了许多误解,但回顾历史,可以说这是一种正确的营销手段。

【评】确实一开始会以为JavaScript是Java的脚本语言,但是事实上JavaScript的语法是参考Java的。营销手段?这个马云、码云这个案例差不多。

1.3 ECMscript

JavaScript是由网景公司提出的,微软开发了和JavaScript相兼容的JScript并将其应用于Internet Explorer中。不过,人们通常将两者统称为JavaScript。JavaScript的标准化是ECMAScript。

【评】微软的IE真他妈是个垃圾!

1.4 JavaScript的版本

先由JavaScript实现某一个功能,ECMAScript才对其进行标准化处理。

【评】标准化的流程

1.5 JavaScript实现方式

客户端JavaScript代码的可移植性

JavaScript编程中有一个很麻烦的问题,即不同的浏览器中其执行方式会有所不同。

影响客户端JavaScript可移植性的原因主要有两点:

  • JavaScript语言实现方式的不同
  • 渲染引擎的差别(DOM或是CSS的解释不同)

要解决JavaScript语言实现方式差异关键在于ECMAScript,因为ECMAscript作为一种标准,有明确的规定。现在大多数有名的JavaScript实现都基于ECMAscript标准,所以只要ECMAscript标准的代码,就能够在很大程度上提高可移植性。

【评】这或许需要ES的原因,需要一个标准结束这种混乱的情况,和“书同文,车同轨”差不多。

1.6 JavaScript运行环境

DOM编程就是浏览器和用户之间的接口,可以在浏览器上显示内容或是反馈用户的点击操作。

宿主对象可以把它理解为类似于其他程序设计语言的外部库的概念即可。

图1.1 Web 应用程序的组成结构

【评】接口就类似于插头,有两孔的、三孔的。

1.7 JavaScript 相关环境

1.7.2 源代码压缩

为了使客户端 JavaScript 的执行更加高速,可以对源代码进行压缩。通过压缩源代码可以实现以下效果以提高执行速度。

  • 减少了网络通信传送量而使得网络等待时间减少。
  • 源代码缩短之后,JavaScript 解释器(浏览器)用于解释代
    码的时间减少。
  • (有些压缩工具可以使)源代码得到优化。

单纯的压缩工具的效果只是删除不需要的空白内容、换行符以及注释等。为了提高运行速度而不写必要的注释并不是可取的做法,所以,这样单纯的压缩工具也是有其存在意义的。稍高级一些的压缩工具则会进行将变量名替换为较短的字符串之类的处理,不过这样一来,源代码的可读性也会大大降低。更高级一些的压缩工具能够像大多数的编译器那样对代码进行优化。例如,去除无用的代码,或是预先计算代码中的一些表达式,并将其替换为常量,等等。而要实现这一效果,就不能把源代码仅看作是单纯的字符串,还要以 JavaScript 的标准正确地解释其含义。这样一来,也就实现了对代码的检查,能够发现代码中一些潜在的错误。

虽然对源代码进行压缩非常地麻烦,但相应的也能获得不小的收获。因而,在开发规模较大的情况下,应当对源代码进行压缩。

相关