Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
77 lines (68 sloc) 12.8 KB

JavaScript (EcmaScript)

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.

frontend.directory Gitter Twitter


  • Control Flow & Error Handling: Statements, that you can use to incorporate interactivity in your application.
  • 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.
  • Generators: Generators allow you to define an iterative algorithm by writing a single function which can maintain its own state.
  • 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.
  • 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.

License

Creative Commons License
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.