JavaScript
Notes along the JavaScript, ECMAScript, TypeScript journey
Learning Resources
Standards and Specifications
- Standards Bodies
- HTML
- CSS
- JavaScript / ECMAScript
- JavaScript Web API
- JSON (JavaScript Object Notation)
- XML (eXtensible Markup Language)
- DOM (Document Object Model)
- XHR (XMLHttpRequest)
- Fetch
- HTTP
- Web Components
- Web Sockets
Documentation and Reference Material
- Development
- node Documentation
- npm Documentation
- Mozilla Developer Network
- Google Developers
- w3c Developer Avenue
- W3Schools
- Opera Developer Site
- Facebook Developers Site (Open Source)
- NodeSchool (Interactive Code Workshop Modules within Node.js)
- The Modern JavaScript Tutorial
- Behavior Driven Development (BDD)
- Cucumber (BDD)
- TutorialsPoint
- Agile
- Testing
- Documentation
Key Concepts
this
- Strict mode
- Working with Objects
- Template Strings/Literals
- Destructuring Assignment
- Functions
- Shadow DOM
- Asynchronous
- JavaScript Modules
- JavaScript Module Pattern: In-Depth (Ben Cherry)
- The Module Pattern (Learning JavaScript Design Patterns by Addy Osmani)
- The Revealing Module Pattern (Christian Heilmann)
- Ch 16: Modules (Exploring ES6 by Dr. Axel Rauschmayer)
- Moving Past RequireJS (Ben McCormick)
- The mind-boggling universe of JavaScript Module strategies (Tiago Romero Garcia)
- AMD (Asynchronous Module Definition)
- CommonJS
export
/import
(aka ECMAScript Harmony modules)- SystemJS
- Bundlers
- Lazy Loading
- Builders, Task Runners
- Transpilers / Compilers
- Web Components
- Storage
- Workers
- PWA (Progressive Web Applications)
- CORS (Cross-Origin Resource Sharing)
- Semantic Versioning (semver)
- Licensing
- node and npm
Books
Videos
- Pete Hunt: The Past, Present and Future of React (01:26:16)
- Nicholas Zakas: Writing Maintainable JavaScript (00:47:01)
Personal Blogs / Twitter Feeds
- Brendan Eich (JavaScript)
- John Resig (JQuery)
- Ryan Dahl (NodeJS)
- Sebastian McKenzie (Babel)
- Paul Irish
- Addy Osmani
- Dmitry Soshnikov
- Ben Alman
- Miller Medeiros
- Nicholas Zakas
- Jake Archibald
- Christopher Alexander (Pattern Language)
- Kyle Simpson
- ES6 in depth article series (Jason Orendorff)
Online Playgrounds
- HTML, CSS, JavaScript only
- Mobile (React Native, NativeScript)
- SQL
- Multi Framework / Environment
Frameworks
- Wikipedia
- Nodejs
- jQuery
- Feature Detection / Polyfills
- UI Frameworks
- Backbone.js
- Vue.js
- Ember.js
- Knockout
- Sencha Ext JS
- Dojo
- jQWidgets
- Electron
- Microsoft
- Progress Software (Telerik)
- Adobe
- Testing
- Unit / Integration
- BDD / TDD / UI / Functional
- Multipurpose
- Test Automation Framework
- Test Runners
- UI Component Development
- Rapid Application Development / Codeless Development
- Animation Framework
- Data Visualization
- Mobile Apps
- Continuous Integration
Coding and Design Standards
- ElectronJS Coding Style
- Airbnb JavaScript Style Guide
- jQuery JavaScript Style Guide
- Node.js Style Guide
- npm’s “funny” Coding Style
- WordPress JavaScript Coding Standards
- Google Material Design
- Google Style Guides
- Android Design Guide
- Mozilla Style Guide
- Microsoft Design
- Standard JS
- JavaScript Standard Style Rules (with references to ESLint)
- Apple Human Interface Guidelines
- Design Patterns
- Mr.doob’s Code Style
- Idiomatic JavaScript Style Guide
- w3schools JavaScript Style Guide
- JavaScript Naming Conventions (Robin Wieruch)
Icons, Graphics and Themes
IDEs and Toolkits
- Visual Studio Code (Microsoft)
- Atom (Github)
- Nuclide (Facebook plugin for Atom - not supported officially on Windows)
- Dojo Toolkit
Version Control
Test Data
- JSONPlaceholder
- Todd Motto’s List of Public APIs
- Open Data Sites (data.gov.*)