本节书摘来自异步社区《深入理解JavaScript》一书中的第1章,第1.1节,作者: 【美】AxelRauschmayer(罗彻麦尔)译者: 王玉林 , 杜欢 , 庄婷婷 , 章子鹏,更多章节内容可以访问云栖社区“异步社区”公众号查看。
第1章 基础JavaScript
深入理解JavaScript
本章讲的是“基础JavaScript”,这是我定义的一个JavaScript子集,它力求精简,使大家在学习的时候更有效率。我建议在刚开始学习JavaScript的时候,先用它编程感受一段时间。在进阶前不用什么都学,那可能会令你感到困惑。
1.1 背景
本节会对JavaScript做一些简单的背景介绍,让你更清楚它的来龙去脉。
1.1.1 JavaScript与ECMAScript
ECMAScript是JavaScript的官方命名。因为Java已经是一个商标(它的原始持有者是Sun,现在是Oracle),所以它不得不准备一个新的名字。如今,一些早前收到过授权的公司,如Mozilla,是允许使用JavaScript这个名字的。使用JavaScript这个名字通常需要遵循以下规则。
JavaScript指的是一种编程语言。
ECMAScript是这种语言规范的名字。因此,每当提到这种语言的版本时,就是指ECMAScript。JavaScript当前的版本是ECMAScript 5,ECMAScript 6还在发展之中。
1.1.2 JavaScript的影响和本质
JavaScript的创造者Brendan Eich,当时除了自己快速地创造这种语言外没有别的选择(或者说,如果他不够快的话,Netscape公司将采用更糟糕的技术)。他借鉴了各种编程语言,如Java(语法、原始值和对象),Scheme、AWK(第一类函数),Self(原型继承)、Perl和Python(字符串、数组和正则表达式)。
直到ECMAScript 3之前,JavaScript都没有异常处理,这也是为什么它经常会自动转换值和静默失败的原因:它最初不能抛出异常。
一方面,JavaScript有些怪异和功能缺失(比如块作用域、模块、子类支持等)。另一方面,它有许多强大的特性可以弥补这些问题。在其他的语言里,我们学的是语言特性,而在JavaScript中,我们常学的却是模式。
有鉴于此,JavaScript支持函数式编程(高阶函数、内置的map和reduce等)和面向对象编程(对象、继承)的混合编程风格也就不足为奇了。