background preloader

JavaScript

Facebook Twitter

JS engine

Cdnjs - the missing cdn. Writing Modular JavaScript With AMD, CommonJS & ES Harmony. When we say an application is modular, we generally mean it's composed of a set of highly decoupled, distinct pieces of functionality stored in modules.

Writing Modular JavaScript With AMD, CommonJS & ES Harmony

As you probably know, loose coupling facilitates easier maintainability of apps by removing dependencies where possible. When this is implemented efficiently, its quite easy to see how changes to one part of a system may affect another. Unlike some more traditional programming languages however, the current iteration of JavaScript (ECMA-262) doesn't provide developers with the means to import such modules of code in a clean, organized manner. It's one of the concerns with specifications that haven't required great thought until more recent years where the need for more organized JavaScript applications became apparent. Instead, developers at present are left to fall back on variations of the module or object literal patterns.

Start. This is a wiki for the ongoing specification work of Ecma TC39, the technical committee tasked with standardization of the ECMAScript programming language.

start

Most of the wiki is world-readable, meaning that anyone can view the pages. Certain sections are restricted to members of the technical committee. The wiki is running on DokuWiki, a wiki program for editing documentation. It has several features which are helpful for that task. Please take a moment to familiarize yourself with the mechanisms of the wiki. Minification (programming) Minified source code is especially useful for interpreted languages deployed and transmitted on the Internet (such as JavaScript), because it reduces the amount of data that needs to be transferred.

Minification (programming)

Minified source code may also be used as a kind of obfuscation, though the term obfuscation may be distinguished as a form of false cryptography while a minified code instance may be reversed using a pretty-printer. In Perl culture, aiming at extremely minified source code is the purpose of the Perl golf game. Learning JavaScript Design Patterns. Design patterns are reusable solutions to commonly occurring problems in software design. They are both exciting and a fascinating topic to explore in any programming language. One reason for this is that they help us build upon the combined experience of many developers that came before us and ensure we structure our code in an optimized way, meeting the needs of problems we're attempting to solve.

Design patterns also provide us a common vocabulary to describe solutions. Helpful JavaScript Patterns. Strict mode - JavaScript. Strict Mode Overview Note: Sometimes you'll see the default, non-strict mode referred to as "sloppy mode".

Strict mode - JavaScript

Shim (computing) The TI DucatiSIP core does video acceleration and accelerated image processing.

Shim (computing)

The actual IC doing the calculations is controlled by software running on two Cortex-M3 microcontrollers. The operating system (running on the host CPU) only needs a shim to interface with the subsystem. Webshims lib - The capability-based polyfill-loading JS library. Important note: Webshim is not compatible with upcoming jQuery 3.x and I do not plan to work on a new major version.

Webshims lib - The capability-based polyfill-loading JS library

I will still fix critical bugs in the future though. Webshim is a polyfill library that enables you to reliably use HTML5 features across browsers, even if native support is lacking. The project is hosted on GitHub, and is available for use under the MIT software license. You can report bugs and discuss features on the GitHub issues page. Polyfill. Origin[edit] The term originated with Remy Sharp who required a word that meant “replicate an API using JavaScript (or Flash or whatever) if the browser doesn’t have it natively” while co-writing the book 'Introducing HTML5' in 2009. Shim, to him, meant a piece of code that you could add that would fix some functionality, but it would most often have its own API, thus did not fulfill Sharp's terminology requirements. The terms progressive enhancement and graceful degradation similarly did not meet his needs since they didn't specifically require, nor were they specific to, JavaScript.

Rico (Ajax) Zzo/JUTE. PhantomJS: Headless WebKit with JavaScript API. AltJS compile-to-JavaScript language list.

JS Polyfills & fallbacks

Minify - Integrate Google closure compiler with Eclipse IDE. Minify JavaScript - Free JavaScript Compressor. Closure Tools. JS Documentation. JS Logging. JSON. ECMAScript. History[edit] JavaScript was originally developed by Brendan Eich of Netscape under the name Mocha, later LiveScript, and finally renamed to JavaScript.[1] In December 1995, Sun Microsystems and Netscape announced JavaScript in a press release.[2] In March 1996, Netscape Navigator 2.0 was released, featuring support for JavaScript.

ECMAScript

Owing to the widespread success of JavaScript as a client-side scripting language for web pages, Microsoft developed a compatible dialect of the language, naming it JScript to avoid trademark issues. JScript added new date methods to fix the non-Y2K-friendly methods in JavaScript, which were based on the Java Date class.[3] JScript was included in Internet Explorer 3.0, released in August 1996. Netscape delivered JavaScript to Ecma International for standardization and the work on the specification, ECMA-262, began in November 1996.[4] The first edition of ECMA-262 was adopted by the Ecma General Assembly of June 1997.

Versions[edit] Features[edit] Syntax[edit] Prototype-based programming. A fruit bowl serves as one example.

Prototype-based programming

A "fruit" object would represent the properties and functionality of fruit in general. A "banana" object would be cloned from the "fruit" object, and would also be extended to include general properties specific to bananas. Each individual "banana" object would be cloned from the generic "banana" object. Standard ECMA-262. Standard ECMA-262 ECMAScript® 2017 Language Specification 8th edition (June 2017) This Standard defines the ECMAScript 2017 general-purpose programming language.

Standard ECMA-262

The following files can be freely downloaded: Kindly note that the normative copy is the HTML version; the PDF version has been produced to generate a printable document. ECMAScript Language Specification - ECMA-262 Edition 5.1. Www.rfc-editor.org/rfc/rfc4329.txt. Harmony:specification_drafts. This page contains a historical record of working draft of the ES.next specification prepared by the project editor.

harmony:specification_drafts

Errors in the current draft should be reported as bugs at bugs.ecmascript.org. Report the version you are reading, and an appropriate “component” (editorial issues, technical issues, etc.). Such bug reports are particularly useful for specific bugs such as misspellings or errors in algorithms. An unofficial HTML version of the Edition 6 working draft is usually available at Note that this HTML version may not always be up to date with the current working draft below. JavaScript. JavaScript is classified as a prototype-based scripting language with dynamic typing and first-class functions. This mix of features makes it a multi-paradigm language, supporting object-oriented,[6] imperative, and functional[1][7] programming styles. JavaScript has been standardized in the ECMAScript language specification. History[edit]

A re-introduction to JavaScript (JS Tutorial) Javascript/JScript/JScript.NET. JSLint,The JavaScript Code Quality Tool. Online JavaScript beautifier. JSLint. Isolating your code with closures. When writing unobtrusive javascript code one technique often used to isolate code from the rest of the scripts on the page is creating and immediately executing an anonymous function, like this: function() { // Code to isolate may be put in here function sayHello() { alert("Hello World!

"); } window.greet = function() { sayHello(); }; }(); // You can use greet here, but not sayHello greet(); // Alerts "Hello World! " Config.js – a JavaScript cofiguration library. Description Config.js allows developers to configure their applications in an XML block instead of hard-coding values inside their scripts or in JSON objects. The XML can be embedded inside an HTML document or in a separate XML file. The configuration block may contain strings, numbers, arrays and HTML. JsContract: Design by Contract library.

JS IDE

JS Frameworks. JS alternatives. JS Testing.