Context: frontend-dev-bookmarks / Languages, Protocols, Browser APIs
Control Flow & Error Handling: Statements, that you can use to incorporate interactivity in your application.
- 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.
- 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.
- Callbacks vs Coroutines: In this post TJ Holowaychuk goes through hist experiences with coroutines and why he thinks they’re a great tool.
- 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.
- 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.
- Idiomatic.js: The following list outlines the practices that Rick Waldron uses in all code that he is the original author of.
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.
- Object-Oriented Design in TypeScript / ES6: The author dives into advanced OOP topics such as functional programming principles, inheritance and inversion of control.
- Understanding ECMAScript 6: Free (as in pay what you want) E-Book by Nicholas C. Zakas describing the new features in EcmaScript 6.
- 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.
- 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.