[Home]   [TOC]

Study_JavaScript  
JavaScript Study
JavaScript, ECMA, ECMA262, ECMAScript
Updated Jul 3, 2015 by jht5...@gmail.com

一、标准

JavaScript was originally developed by Brendan Eich of Netscape under the name Mocha, later LiveScript, and finally renamed to JavaScript. The key design principles within JavaScript are taken from the Self and Scheme programming languages.

JavaScript Language Specification JavaScript 1.1 10/3/96



标准(ECMA 262)官方网站: http://www.ecmascript.org/ http://www.ecma-international.org/publications/standards/Ecma-262.htm

Ecma262 1st https://code.google.com/p/hatter-source-code/downloads/detail?name=Ecma-262-1st.pdf Jun 1997
Ecma262 2nd https://code.google.com/p/hatter-source-code/downloads/detail?name=Ecma-262-2nd.pdf Aug 1998
Ecma262 3rd https://code.google.com/p/hatter-source-code/downloads/detail?name=Ecma-262-3rd.pdf Dec 1999
Ecma262 4th - - 已废弃
Ecma262 5th https://code.google.com/p/hatter-source-code/downloads/detail?name=Ecma-262-5th.pdf Dec 2009
Ecma262 5th-r1 https://code.google.com/p/hatter-source-code/downloads/detail?name=Ecma-262-5th-r1.pdf Jun 2011 中文版

http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm

EcmaScript 和 JavaScript 的关系
JavaScript既是EcmaScript和父亲,也是EcmaScript的儿子,即先有了JavaScript,再形成EcmaScript规范,但JavaScript又遵循EcmaScript规范,同时遵循EcmaScript规范的语言有 ActionScript, JScript 等。

二、实现语言

语言 描述
JavaScript Netscape的实现,现在FireFox继承了该实现
JScript/ JScript.Net 微软在IE、WScript、CScript、ASP和.NET中所所用的实现
ActionScript Adobe的Flash、Flex(现在是Apache)的实现
Ejscript Ejscript — a powerful server-side JavaScript language and web framework
ExtendScript -
DMDScript DMDScript is Digital Mars' implementation of the ECMA 262 scripting language
CriScript CRIScript is a lightweight implementation of JavaScript/ECMAScript for games
InScript InScript is a software library providing an ECMAScript engine for ECMA-262 3ed, written in C++, and some Java classes for LiveConnect
QtScript QtScript is a scripting engine that has been part of the Qt cross-platform application framework since version 4.3.0
Caja The Caja Compiler is a tool for making third party HTML, CSS and JavaScript safe to embed in your website
WMLScript WMLScript is the dialect of JavaScript used for WML pages and is part of the Wireless Application Protocol (WAP)

三、相关语言

语言 网站 描述
CoffeeScript http://coffeescript.org/ CoffeeScript is a little language that compiles into JavaScript
Dart http://www.dartlang.org/ BUILD HTML5 APPS FOR THE MODERN WEB
TypeScript http://www.typescriptlang.org/ TypeScript is a language for application-scale JavaScript development
Objective-J http://cappuccino.org/ Objective-J is a programming language developed as part of the Cappuccino web development framework
Self http://selflanguage.org/ Self is a prototype-based dynamic object-oriented programming language, environment, and virtual machine centered around the principles of simplicity, uniformity, concreteness, and liveness
Scheme http://www.schemers.org/ Scheme is a functional programming language and one of the two main dialects of the programming language Lisp
Bython http://brython.info/ A Python 3 implementation for client-side web programming

借鉴部分 [5]

Self 没有类的面向对象,基于原型的继承
Schema 高阶函数,闭包
Java 语言名字、语法
Perl 正则表达式

四、JavaScript工具

Hatter's JavaScript tools

JavaScript Shell http://www.squarefree.com/shell/ A command-line interface for JavaScript and DOM
JSLint http://jslint.com/ JSLint,The JavaScript Code Quality Tool
JSHint http://www.jshint.com/ JSHint is a tool to detect errors and potential problems in JavaScript code
ESLint http://eslint.org/ ESLint The pluggable linting utility for JavaScript
JSLint Error Explanations http://jslinterrors.com/ JSLint Error Explanations
/packer/ http://dean.edwards.name/packer/ A JavaScript Compressor
Beautify http://jsbeautifier.org/ Beautify, unpack or deobfuscate JavaScript and HTML, make JSON/JSONP readable, etc
JS NICE http://www.jsnice.org/ JS NICE: Statistical renaming, Type inference and Deobfuscation
JRX http://cuneytyilmaz.com/prog/jrx/ This is a simple JavaScript real-time regular expression evaluator, similar to RX tool of Activestate's Komodo IDE
RegexPal http://hatter.me/js/regexpal/ a JavaScript regular expression tester
interactive xpath tester http://ponderer.org/download/xpath/ interactive xpath tester
CSS Lint http://csslint.net/ Will hurt your feelings* (And help you code better)
Format CSS Code http://www.cssportal.com/format-css/ This CSS tool will help you format your code to the style you prefer
JSONLint http://jsonlint.com/ The JSON Validator
Online JSON Viewer http://jsonviewer.stack.hu/ JSON Viewer - Convert JSON Strings to a Friendly Readable Format
Real-time HTML Editor http://htmledit.squarefree.com/ Real-time HTML Editor
Pretty Diff http://prettydiff.com/ Pretty Diff - The difference tool
Closure Compiler http://closure-compiler.appspot.com/home Closure Compiler Service
Jash http://www.billyreisinger.com/jash/ Jash: JavaScript Shell
jsFiddle http://jsfiddle.net/ mootools shell, easy test you snippets before implementing
- http://fiddle.jshell.net/ -
JS Bin http://jsbin.com/ JS Bin - Collaborative JavaScript Debugging
CodeMirror http://codemirror.net/ CodeMirror is a JavaScript component that provides a code editor in the browser
Ace http://ace.c9.io/ Ace is an embeddable code editor written in JavaScript.
Mergely http://www.mergely.com/ Mergely - Diff and merge documents online
Paper.js http://paperjs.org/ Paper.js is an open source vector graphics scripting framework that runs on top of the HTML5 Canvas
ckwnc http://www.ckwnc.com/ ckwnc is a uml sequence diagram creation tool that uses an intuitive c-style language to automatically create uml diagrams that can be saved as an image or embedded directly into other pages
Emmet http://emmet.io/ Emmet — the essential toolkit for web-developers
JScrambler https://jscrambler.com/ Protect your JavaScript | JScrambler
node.js http://nodejs.org/ Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications.
Grunt http://gruntjs.com/ Grunt: The JavaScript Task Runner
JsWebP http://www.etherdream.com/WebP/ 让浏览器支持WebP格式
Moment.js http://momentjs.com/ A javascript date library for parsing, validating, manipulating, and formatting dates.
cheet.js http://namuol.github.io/cheet.js/ easy easter eggs (konami code, etc) for your site.
rangy https://code.google.com/p/rangy/ A cross-browser JavaScript range and selection library.
JSFuck http://www.jsfuck.com/ JSFuck is an esoteric and educational programming style based on the atomic parts of JavaScript.
CasperJS http://casperjs.org/ CasperJS is a navigation scripting & testing utility for PhantomJS and SlimerJS written in Javascript
JsFramework http://jsframework.com/ JsFramework is an object oriented JavaScript library with a programming model similar to the Microsoft .NET Framework
gif.js https://github.com/jnordberg/gif.js JavaScript GIF encoding library
math.js http://mathjs.org/ an extensive math library for JavaScript and Node.js
Browserify http://browserify.org/ Browserify lets you require('modules') in the browser by bundling up all of your dependencies
ie7-js https://code.google.com/p/ie7-js/ IE7.js is a JavaScript library to make Microsoft Internet Explorer behave like a standards-compliant browser
jpacker https://code.google.com/p/jpacker/ jPacker is a command-line application ported to Java from Dean Edwards' /packer/ original version and based on Jesse Hansen's C# version

五、游戏

Phaser http://phaser.io/ Desktop and Mobile HTML5 game framework

六、MVC MVVM框架 [6]

Backbone http://backbonejs.org/
Meteor http://www.meteor.com/
Ember http://emberjs.com/
AngularJS http://angularjs.org/
Knockout http://knockoutjs.com/
Spine http://spinejs.com/
Batman http://batmanjs.org/
CanJS http://canjs.us/
Avalon http://rubylouvre.github.io/mvvm/

七、在服务器端应用

ASP/ASP.NET
node.js http://nodejs.org/ Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications.
jssp http://jssp.sourceforge.net/ JSSP - JavaScript Server Pages

八、调试工具

Firebug http://getfirebug.com/ The most popular and powerful web development tool
Firebug Lite http://getfirebug.com/firebuglite Firebug Lite: doing the Firebug way, anywhere
leak-finder-for-javascript http://code.google.com/p/leak-finder-for-javascript/ Tool for finding memory leaks in JavaScript programs
jsdt http://code.google.com/p/jsdt/ Javascript Debug Toolkit is a software can debug javascript in ie,firefox,safari,chrome,opera,mobile ie browser,mobile opera browser and so on
JsGear http://www.etherdream.com/JSGear/demo.html JsGear 是一款JavaScript变速齿轮插件
Fiddler http://www.telerik.com/fiddler The free web debugging proxy for any browser, system or platform
Livepool http://rehorn.github.io/livepool/ Cross platform debugging proxy for web developers base on NodeJS
Venkman JavaScript Debugger https://addons.mozilla.org/en-US/firefox/addon/javascript-debugger/ Venkman is the code name for Mozilla's JavaScript Debugger
jsPerf http://jsperf.com/ jsPerf — JavaScript performance playground

九、相关网站

The HTML5 test http://html5test.com/ The HTML5 test score is an indication of how well your browser supports the upcoming HTML5 standard and related specifications
OpenAjax http://www.openajax.org/ The OpenAjax Alliance is an organization of leading vendors, open source projects, and companies using Ajax that are dedicated to the successful adoption of open and interoperable Ajax-based Web technologies.
Command Line API http://getfirebug.com/wiki/index.php/Command_Line_API The Firebug Command Line provides these special functions for your convenience.

十、友情连接

ECMAScript5.1中文版 http://www.ecmascript.cn/ ECMAScript5.1中文版
开源中国在线工具-OSCTools http://www.ostools.net/ 开源中国在线工具,osctools为开发设计人员提供在线工具,提供jsbin在线 CSS、JS 调试,在线 Java API文档,在线 PHP API文档,在线 Node.js API文档,Less CSS编译器,MarkDown编译器等其他在线工具
JSDB.io http://jsdb.io/ JSDB.io - The Database of JavaScript Libraries
Web developer tools https://mothereff.in/ Web developer tools

十一、学习资料

JavaScript 标准参考教程 http://javascript.ruanyifeng.com/
https://github.com/ruanyf/jstutorial
JavaScript 标准参考教程(alpha) 英文标题:JavaScript Standards Reference Guide
ECMAScript 6入门 http://es6.ruanyifeng.com/
https://github.com/ruanyf/es6tutorial
《ECMAScript 6入门》是一本开源的JavaScript语言教程,全面介绍ECMAScript 6新引入的语法特性。
Promises https://www.promisejs.org/ Consider the following synchronous JavaScript function to read a file and parse it as JSON.
ECMAScript 6 Tools https://github.com/addyosmani/es6-tools https://github.com/addyosmani/es6-tools

十二、PPT学习资料

Code Conventions for the JavaScript Programming Language http://javascript.crockford.com/code.html This is a set of coding conventions and rules for use in JavaScript programming.
JavaScript Memory Management Masterclass https://speakerdeck.com/addyosmani/javascript-memory-management-masterclass Presented at at the Google WebPerf Special (London WebPerf Group), August 26th 2014.

十三、参考资料

[1]. http://en.wikipedia.org/wiki/JavaScript
[2]. http://en.wikipedia.org/wiki/ECMAScript
[3]. http://ejohn.org/blog/the-world-of-ecmascript/
[4]. http://ued.alimama.com/posts/543
[5]. http://www.daimi.au.dk/~amoeller/VM/javascript-VM.pdf
[6]. http://www.cnblogs.com/aaronjs/p/3149402.html
[7]. http://designdrizzle.com/10-great-javascript-tools-which-web-developers-shouldnt-miss/
[8]. http://www.oschina.net/translate/10-great-javascript-tools-which-web-developers-shouldnt-miss
[9]. http://bbs.html5cn.org/thread-3235-1-1.html
[10]. http://dean.edwards.name/