codecamp

语言的性质(The nature of the language)

本节对JavaScript的性质做简要介绍,以帮你理解一些疑问。

JavaScript 和 ECMAScript(JavaScript versus ECMAScript)

编程语言称为JavaScript,语言标准被称为ECMAScript。他们有不同名字的原因是因为“Java”已经被注册为商标(属于Oracle)。目前,只有Mozilla被正式允许使用“JavaScript”名称,因为很久以前他们得到一份许可。因此,开放的语言标准拥有不同的名字。当前的JavaScript版本是ECMAScript 5,ECMAScript 6当前是开发版

影响(Influences)

  • JavaScript之父,Brendan Eich 别无选择必须迅速创建一门语言。(否则,会更糟糕,Netscape将使用其他技术)。他借鉴了几门其他语言:
  • JavaScript借鉴了Java的语法和如何区分原始值和对象
  • JavaScript的函数设计受Scheme和AWK的启发——他们(的函数)都是第一类(first-class)对象,并且在语言中广泛使用。闭包使他们(函数)变成强大的工具。
  • Self影响了JavaScript独一无二的面向对象编程(OOP)风格。它的核心思想(在这里我们没有提到)非常优雅,基于此创建的语言非常少。但后面会提到一个简单的模式照顾大部分用例。JavaScript面向对象编程的杀手级特性是你可以直接创建对象。不需要先创建类或其他类似的东西。
  • Perl和Python影响了JavaScript字符串,数组和正则表达式的操作。

JavaScript直到ECMAScript 3才加入异常处理,这解释了为什么这门语言经常自动转换类型和经常静默失败:最初没有抛出异常的功能。 一方面,JavaScript有很多怪癖,并且缺失很多功能(块级变量作用域(block-sciped variables),模块(modules)支持子类型(subtyping)等)。另一方面,它有几个非常强大的特性,允许你弥补上面的问题。在其他语言中,你要学习语言特性。在JavaScript中,你需要经常学习模式代替。

深入阅读(Further reading)

JavaScript: how it all began JavaScript: the glass is half full [什么让JavaScript如此吸引人?] ECMAScript: ES.next versus ES 6 versus ES Harmony [包括ECMAScript版本的一个简史] Perl and Python influences in JavaScript Javascript:10天设计一门语言

本文约定(Conventions used in this blog post)
语法(Syntax)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }