Context: frontend-dev-bookmarks / Languages, Protocols, Browser APIs
JavaScript is a full-fledged dynamic programming language that, when applied to an HTML document, can provide dynamic interactivity on websites. It is defined by ECMAScript standard.
- Control Flow & Error Handling: Statements, that you can use to incorporate interactivity in your application.
- A Guide to Proper Error Handling in JavaScript: Camilo Reyes describes ways to handle Exceptions and asynchronous errors in JavaScript.
- Enhancement Libraries: Libraries that attempt to improve and enhance the vanilla JavaScript language by providing utility functions.
- Flow: Flow is a static type checker for JavaScript. It can be used to catch common bugs in JavaScript programs before they run.
- Lodash: A modern JavaScript utility library delivering modularity, performance, & extras.
- MOUT: MOUT provides many helper methods similar to those found on other languages standard libraries (ie. Python, Ruby, PHP).
- Ramda: A practical library designed specifically for a functional programming style, one that makes it easy to create functional pipelines, one that never mutates user data.
- Practical Ramda - Functional Programming Examples: Tom MacWright gives some practical examples of Ramda usage.
- RubyJS: RubyJS is a JavaScript implementation of all methods from Ruby classes like Array, String, Numbers, Time and more.
- Functions: A function is a JavaScript procedure—a set of statements that performs a task or calculates a value.
- Closures explained by Jim Ley: Explanation of closures in JavaScript.
- Let’s Learn JavaScript Closures: So this post will be dedicated to the nuts and bolts of how and why closures work the way they do.
- MDN Guide Chapter about Functions: Defining functions, scope, closures, arguments, parameters, arrow functions and predefined functions.
- MDN Reference for Functions: Defining functions, arguments, parameters, methods, block-level functions and browser compatibility.
- Generators: Generators allow you to define an iterative algorithm by writing a single function which can maintain its own state.
- A Closer Look at Generators Without Promises: Author looks at libraries for asynchronous programming with generators but without promises.
- A Study on Solving Callbacks with JavaScript Generators: This article describes how Generators help fight callback hell.
- Callbacks vs Coroutines: In this post TJ Holowaychuk goes through hist experiences with coroutines and why he thinks they’re a great tool.
- Coroutine Event Loops in Javascript: An intriguing use of coroutines is to implement event loops as an alternative to callback functions. This is particularly relevant to Javascript, where the use of callbacks is pervasive.
- Coroutine vs Continuation vs Generator: StackOverflow Discussion about the difference between Couroutines, Continuations and Generators.
- Regenerator: This package implements a source transformation that takes the proposed syntax for generators/yield from future versions of JS and spits out efficient JS-of-today (ES5) that behaves the same way.
- Grammar and Types: JavaScript's basic grammar, variable declarations, data types scope, hoisting and literals.
- Detailed Overview of Well-Known Symbols: Well-known symbols are used by built-in JavaScript algorithms. This article guides through the list of well-known symbols and explains how to use them comfortable in your code.
- Grammar and Types Chapter on the MDN: This chapter discusses JavaScript's basic grammar, variable declarations, data types and literals.
- Variable Hoisting Explained: The author explains how hoisting works in JavaScript including variable declarations and ES6 let operator.
- Variables Lifecycle: Why Let is not Hoisted: ES2015 provides a different and improved mechanism for let. It demands stricter variable declaration practices and as result better code quality. Let's dive into more details about this process.
- JS Coding Conventions: Coding conventions are a set of guidelines for a specific programming language that recommend programming style, practices and methods for each aspect of a piece program written in this language.
- Airbnb JavaScript Style Guide: A reasonable approach to JavaScript by Airbnb.
- Google JavaScript Style Guide: JavaScript is the main client-side scripting language used by many of Google's open-source projects. This style guide is a list of dos and don'ts for JavaScript programs.
- Idiomatic.js: The following list outlines the practices that Rick Waldron uses in all code that he is the original author of.
- JavaScript Standard Style: A set of modules to check and improve the style of your code.
- WordPress JavaScript Coding Standards: JavaScript has become a critical component in developing WordPress-based applications (themes and plugins) as well as WordPress core. Standards are needed for formatting and styling JavaScript code.
- Objects: An object is a software bundle of related state and behavior. Software objects are often used to model the real-world objects that you find in everyday life.
- ECMA-262-3 in detail: OOP - The general theory: In this article we consider major aspects of object-oriented programming in ECMAScript. Much attention is given to theoretical aspects to see these processes from within.
- Gentle explanation of this keyword in JavaScript: This article is focused on the invocation explanation, how the function call influences this and demonstrates the common pitfalls of identifying the context.
- OOP In JavaScript: What You NEED to Know: In this article, we are concerned with only Inheritance and Encapsulation since only these two concepts apply to OOP in JavaScript.
- Object-Oriented Design in TypeScript / ES6: The author dives into advanced OOP topics such as functional programming principles, inheritance and inversion of control.
- Prototypal Inheritance in JavaScript: An article by Douglas Crockford introducing the Object.create() method and describing the rational behind it.
- Prototypal Object-Oriented Programming using JavaScript: Mehdi Maujood describes the prototypical OO style and compares it to classes in JavaScript.
- Prototypes and Inheritance in JavaScript: This article tries to demystify the concept of prototypes in JavaScript. It shows how prototypes allow objects to inherit functionality from other objects, an approach to building objects using the new operator and a constructor function.
- Overview: General, high level guides and introductions to the JavaScript language.
- Eloquent JavaScript (Book): A comprehensive book about JavaScript, the language, the browser and Node.js.
- JavaScript Garden: JavaScript Garden is a growing collection of documentation about the most quirky parts of the JavaScript programming language. It gives advice to avoid common mistakes and subtle bugs.
- JavaScript Guide by Mozilla Developer Network: The JavaScript Guide shows you how to use JavaScript and gives an overview of the language.
- Simplified JavaScript Jargon: A community-driven attempt at explaining the loads of buzzwords making the current JavaScript ecosystem in a few simple words.
- Understanding ECMAScript 6: Free (as in pay what you want) E-Book by Nicholas C. Zakas describing the new features in EcmaScript 6.
- What the heck is the event loop anyway?: Philip Roberts, in this video, tries to create an intuitive understanding of what happens when JavaScript runs. He talks about the call stack, event loop, callback queue and other concepts.
- You Dont Know JS: These books each take on specific core parts of the language which are most commonly misunderstood or under-understood, and dive very deep and exhaustively into them.
- Promises: A promise represents the result of an asynchronous operation.
- Bluebird.js: Bluebird is a full featured promise library with unmatched performance.
- Difference between a Promise and a Task: Once you have a Promise instance the action has already started. Task instance does not run until someone calls .fork()
- ECMAScript Promises Spec: Standard ES specification for promises.
- MDN page on Promises: The Promise object is used for deferred and asynchronous computations. A Promise represents an operation that hasn't completed yet, but is expected in the future.
- The Promises/A+ Spec: An open standard for sound, interoperable JavaScript promises—by implementers, for implementers.
- Tracking Unhandled Rejected Promises: In Promise-based asynchronous code, rejections are used for error handling. One risk is that rejections may get lost, leading to silent failures.
- What is Promise.try, and why does it matter?: In this brief article Sven Slootweg provides a better explanation of what Promise.try is, and why you should always use it, without exceptions.
- What's The Point Of Promises?: The point of promises is to represent the eventual resulting value from an operation, but the reason to use them is to better parallel synchronous operations and to solve the callback hell.
This work is licensed under a Creative Commons Attribution 4.0 International License.
Please provide a link back to this repository. This is not necessary for GitHub forks.