Learn | JavaScript: Behavioral Layer

Standards Based Development

One day framework dragons descended on the land, enslaving inhabitants and ravaging models. The model songs, once all keyed in F major, became never-ending vamps over B flat augmented arpeggios.

http://odetocode.com/blogs/scott/archive/2012/02/27/plain-old-javascript.aspx, pojo - Plain Old JavaScript, @OdeToCode
You Can't JavaScript Under Pressure

References and Resources

Open Source JavaScript Books, Literature, ebooks, etc.

json-ishy Free ebooks

community.js

Glossary

pojo (Plain Old JavaScript Object)

pojo was coined by @odetocode, when he said "pojo - Plain Old JavaScript" in reference to using JavaScript as-is, out-the-box, aka Vanillajs via @OdeToCode

You Don't Know js - Scope and Closures demo code

Speaking JavaScript

ocr.js

Daily.js Featured Series

JavaScript: All the Things....aka Atwood's Law

Openjdk

is the place to collaborate on an open-source implementation of the Java Platform, Standard Edition, and related projects.

J

jsmafia opml - JavaScript Feeds, Atom Feeds, Podcasts, etc.

Frameworks and Libraries

Comparisons, Contrasts, Pros/Cons, etc.

tv.js

Learn JavaScript>/a>

dom

JavaScript and Java - References and Resources

JavaScript is to Java, as Ham is to Hamburger

Jeremy Keith
  • JavaScript Guide - MDN
  • JavaScript OO
  • Object Playground - tool and screencast for understanding object oriented JavaScript
  • JavaScript Puzzlers
  • AJAX - MDN
  • Server-Side JavaScript - MDN
  • DHTML - MDN
  • SpiderMonkey - MDN
  • Canvas - MDN
  • Micro.js - Collection of JavaScript Libraries
  • JavaScript Guide - MDN
  • JavaScript Reference - MDN
  • Crockford on JavaScript
  • An Inconvenient API: The Theory of the DOM - Crockford on YUI Theatre
  • The JavaScript Programming Language - Crockford on YUI Theatre
  • BoilerplateJS - Reference architecture for large scale JavaScript projects
  • Memory Management in JavaScript - MDN
  • Mojito - JavaScript MVC framework for building high-performance, device-independent HTML5 applications running on both client and server
  • JavaScript Sitepoint Reference
  • JavaScript - Sitepoint Blog
  • JavaScript Debugging (with DevTools)
  • JavaScript Posts on ALA
  • Dojo Toolkit
  • dojo toolkit
  • Learn JavaScript
  • JavaScript Promises

    Audio

    Podcasts

    Style Guides

    Professional JavaScript

    Adobe.js

    Adobe Scripting

    Photoshop Scripting

    Engines

    JavaScript engines are virtual machines that interpret and execute JavaScript (aka ECMAScript).

    JavaScript engines are most commonly used in web browsers, being that JavaScript is the language of the web; likewise the most common host environment for JavaScript is a web browser. Web browsers typically use the public api to create "host objects" responsible for reflecting the dom into JavaScript.

    Web servers are another common JavaScript Engine application; JavaScript web servers expose host objects representing an http request and response objects, which a JavaScript program then manipulates to dynamically generate web documents. Microsoft's .ASP technology for IIS allows sever-side code to be written in VBScript or JScript (Microsoft's implementation of JavaScript). Jaxer is a web server running entirely on JavaScript, one benefit of which is permitting the same code to be shared on the server and the client.

    JavaScript Engine

    Active JavaScript Engine Projects

    • Rhino, managed by the Mozilla Foundation, open source, developed entirely in Java
    • Spidermonkey, the first-ever JavaScript engine, which powered Netscape Navigator and today powers Firefox
    • V8 - open source, developed by Google in Denmark, part of Google Chrome
    • JavaScriptCore - open source, marketed as Nitro and developed by Apple for Safari
    • KJS - KDE's ECMAScript/JavaScript engine originally developed by Harri Porten for the KDE project's Konqueror web browser
    • Chakra - for Internet Explorer 9
    • dyn.js - open source, written by Douglas Campos and others
    • Nashorn - open source as part of OpenJDK, written by Oracle Java Languages and Tool Group
    • Juce - C++ application framework, contains a custom embedded JavaScript interpreter
    • asm.js - for Firefox

    Inactive JavaScript Engine Projects

    • Tamarin by Adobe Labs
    • Carakan by Opera Software, used by Opera web browser version 10.50 until switching to V8 with Opera 14 (released in 2013).
    • Futhark by Opera Software, used by Opera web browser versions 9.50 to 10.10 until replaced by Carakan in Opera 10.50 (released March 2010).
    • Narcissus open source written by Brendan Eich, who also wrote SpiderMonkey>

    Implementations

    See also: List of ECMAScript engines and Comparison of layout engines (ECMAScript) on wikipedia.

    JavaScript is a dialect of ECMAScript, which is supported in many applications, especially web browsers. Dialects sometimes include extensions to the language, or to the standard library and related application programming interfaces (API) such as the World Wide Web Consortium (W3C) specified Document Object Model (DOM). This means that an application written in one dialect may be incompatible with another, unless the applications are written to use only a common subset of supported features and APIs ("core").

    A dialect and an implementation are distinct: a dialect of a language is a significant variant of that language, while an implementation of a language (or dialect) executes a program written in that language (or dialect).

    JavaScript Engine
    ApplicationDialect and Latest VersionECMAScript Edition
    Google Chrome, the V8 engineJavaScriptECMA-262, edition 5
    Mozilla Firefox, the Gecko layout engine, SpiderMonkey, and RhinoJavaScript 1.8.5ECMA-262, edition 5
    Safari, the Nitro engineavaScriptECMA-262, edition 5.1
    OperaECMAScript with some JavaScript 1.5 and JScript extensionsECMA-262, edition 5.1
    KHTML layout engine, KDE's KonquerorJavaScript 1.5ECMA-262, edition 3
    Adobe AcrobatJavaScript 1.5ECMA-262, edition 3
    OpenLaszloJavaScript 1.4ECMA-262, edition 3
    Max/MSPJavaScript 1.5ECMA-262, edition 3
    ANT Galio 3JavaScript 1.5 with RMAI extensionsECMA-262, edition 3

    SpiderMonkey

    First JavaScript Engine, created by Eich at Netscape in C++.

    Rhino

    Rhino engine is a JavaScript implementation in Java; some applications of the technology:

    • Nitro - Apple Safari 4
    • V8 - Google Chrome
    • TraceMonkey - Mozilla Firefox 3.5

    Project Nashorn

    Project Nashorn's goal is to implement a lightweight high-performance JavaScript runtime in Java with a native JVM. This Project intends to enable Java developers embedding of JavaScript in Java applications via JSR-223 and to develop free standing JavaScript applications using the jrunscript command-line tool.

    Project Nashornis designed to take full advantage of newer technologies for native JVMs that have been made since the original development of JVM-based JavaScript which was started in 1997 by Netscape and maintained by Mozilla. This Project will be an entirely new code base, focused on these newer technologies. In particular the project will utilize the MethodHandles and InvokeDynamic apis described in JSR-292.

    Community

    This Project is sponsored by the Hotspot Group.

    Note: Rhino is the predecessor of NASHORN, which began as a project at NetScape in 1997, and was released in 1998. RHINO is currently the JavaScript engine shipping with Firefox.

    NASHORN permits developing the magic of:

    • Running JavaScript as native desktop code
    • Shell Scripting with JavaScript
    • Calling Java classes and Java methods in JavaScript
    msie JavaScript Engine - .NET wrapper for working with the Internet Explorer's engines (JsRT version of Chakra, ActiveScript version of Chakra and Classic JavaScript Engine). Project was based on the code of SassAndCoffee.JavaScript and Chakra Sample Hosts.

    msie JavaScript Engine for .NET 1.4.4 - NuGET Gallery

    SpiderMonkey

    JavaScript | All about Mozilla's JavaScript Engine

    Chrome V8

    V8 is Google's open source high-performance JavaScript engine, written in C++ and used in Google Chrome, the open source browser from Google. It implements ECMAScript as specified in ECMA-262, 3rd edition, and runs on Windows XP and Vista, Mac OS X 10.5+, and Linux systems that use IA-32, ARM or MIPS processors. V8 can run standalone, or can be embedded into any C++ application.

    V8 JavaScript Engine

    <

    V8 is Google's open source JavaScript engine.

    V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

    V8 implements ECMAScript as specified in ECMA-262, 5th edition, and runs on Windows (XP or newer), Mac OS X (10.5 or newer), and Linux systems that use IA-32, x64, or ARM processors.

    V8 can run standalone, or can be embedded into any C++ application.

    You can find more information here:
    • The V8 documentation page which includes instructions on downloading and building V8.
    • Performance documentation covering the performance goals of V8, and instructions on how to run the Octane benchmark suite (evolution of the V8 benchmark suite).
    • User mailing list: http://groups.google.com/group/v8-users
    • The V8 contributor wiki page.