Learn JavaScript
JavaScript is a high level, dynamic, untyped, and interpreted programming language. It has been standardized in the ECMAScript language specification. Alongside HTML and CSS, it is one of the three essential technologies of World Wide Web content production; the majority of websites employ it and it is supported by all modern web browsers without plug-ins. JavaScript is prototype-based with first-class functions, making it a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles. It has an API for working with text, arrays, dates and regular expressions, but does not include any I/O, such as networking, storage or graphics facilities, relying for these upon the host environment in which it is embedded.
Getting Started:
- Ten Things A Serious JavaScript Developer Should Learn
- codecademy.com JavaScript [interact]
- MDN: JavaScript [read]
- javascript.info
- JavaScript Enlightenment [read]
- Eloquent JavaScript [read]
General Learning:
- Speaking JavaScript [read]
- You Don't Know JS: Up & Going [read]
- You Don't Know JS: Types & Grammar [read]
- You Don't Know JS: Scope & Closures [read]
- Gentle explanation of 'this' keyword in JavaScript [read]
- You Don't Know JS: this & Object Prototypes [read]
- Modern JavaScript Cheatsheet - Cheatsheet for the JavaScript knowledge you will frequently encounter in modern projects. [read]
Mastering:
- Setting up ES6 [read]
- ES6 FOR EVERYONE! [watch][$]
- Exploring ES6 [read]
- You Don't Know JS: ES6 & Beyond [read]
- Understanding ECMAScript 6: The Definitive Guide for JavaScript Developers [read][$]
- ES6: The Right Parts [watch][$]
- Exploring ES2016 and ES2017 [read]
- JavaScript Regular Expression Enlightenment [read]
- Using Regular Expressions [watch][$]
- You Don't Know JS: Async & Performance [read]
- JavaScript with Promises [read][$]
- Test-Driven JavaScript Development [read][$]
- JS MythBusters [read]
- Robust JavaScript
Functional JavaScript:
- Functional Programming Jargon
- funfunfunction: Functional programming in JavaScript [watch]
- Functional-Light-JS [read]
- Functional Programming in JavaScript: How to improve your JavaScript programs using functional techniques [read]
- Mostly adequate guide to FP (in javascript) [read]
- Professor Frisby Introduces Composable Functional JavaScript [watch]
- JavaScript Allongé [read][$]
- Hardcore Functional Programming in JavaScript [watch][$]
- Functional-Lite JavaScript [watch][$]
References/Docs:
Glossary/Encyclopedia/Jargon:
Standards/Specifications:
- How to Read the ECMAScript Specification
- ECMAScript® 2015 Language Specification
- ECMAScript® 2016 Language Specification
- ECMAScript® 2017 Language Specification
- ECMAScript® 2018 Language Specification
- Status, Process, and Documents for ECMA262
Style:
JavaScript Newsletters, News, & Podcasts:
- Echo JS
- ECMAScript Daily
- ES.next News
- JavaScript Air
- JavaScript Jabber
- JavaScript Kicks
- JavaScript Live
- JavaScript Weekly
- JavaScript.com
Deprecated JS Learning Resources:
- Crockford on JavaScript - Volume 1: The Early Years [watch]
- Crockford on JavaScript - Chapter 2: And Then There Was JavaScript [watch]
- Crockford on JavaScript - Act III: Function the Ultimate [watch]
- Crockford on JavaScript - Episode IV: The Metamorphosis of Ajax [watch]
- Crockford on JavaScript - Part 5: The End of All Things [watch]
- Crockford on JavaScript - Scene 6: Loopage [watch]
- JavaScript Patterns [read][$]
- The Principles of Object-Oriented JavaScript [read][$]
- JavaScript Modules [read]
- Functional JavaScript: Introducing Functional Programming with Underscore.js [read][$]
- The Good Parts of JavaScript and the Web [watch][$]
- High Performance JavaScript (Build Faster Web Application Interfaces) [read][$]
- Advanced JavaScript [watch][$]