background preloader

Books & tutorials

Facebook Twitter

Free Resources - JavaScript.com. Pluralsight’s Quick Start to JavaScript Learn how to write the programming language from scratch, so you can start creating code of your own.

Free Resources - JavaScript.com

JavaScript Objects and Prototypes In-depth, behind-the-scenes details of creating JavaScript objects, manipulating properties, and using prototypal inheritance. Advanced Techniques in JavaScript and jQuery Take your JavaScript functions to the next level. JavaScript Best Practices From syntax oddities, to async patterns, to callbacks, this course will help you identify and prevent common problems and headaches in JavaScript by learning best practices. Pluralsight JavaScript Courses Hundreds of on-demand courses covering fundamental JavaScript tutorials through advanced techniques. MDN JavaScript Guide A large series of written guides curated by Mozilla contributors. Codecademy. NodeSchool. Top 10 Mistakes Node.js Developers Make. Reveal.js - The HTML Presentation Framework. Node.js, Require and Exports. Back when I first started playing with node.js, there was one thing that always made me uncomfortable.

Node.js, Require and Exports

Embarrassingly, I'm talking about module.exports. I say embarrassingly because it's such a fundamental part of node.js and it's quite simple. In fact, looking back, I have no idea what my hang up was...I just remember being fuzzy on it. Assuming I'm not the only one who's had to take a second, and third, look at it before it finally started sinking in, I thought I could do a little write up. In Node, things are only visible to other things in the same file. Var x = 5; var addX = function(value) { return value + x; }; Another file cannot access the x variable or addX function. Now, before we look at how to expose things out of a module, let's look at loading a module.

Var misc = require('. Of course, as long as our module doesn't expose anything, the above isn't very useful. Var x = 5; var addX = function(value) { return value + x; }; module.exports.x = x; module.exports.addX = addX; The Symmetry of JavaScript Functions. In JavaScript, functions are first-class entities. meaning, you can store them in data structures, pass them to other functions, and return them from functions.

The Symmetry of JavaScript Functions

An amazing number of very strong programming techniques arise as a consequence of functions-as-first-class-entities. One of the strongest is also one of the simplest: You can write functions that compose and transform other functions. a very, very, very basic introduction to decorators Let’s consider logical negation. We might have a function like this: const isaFruit = (f) => f === 'apple' || f === 'banana' || f === 'orange'; isaFruit('orange') //=> true We can use it to pick fruit from a basket, using an array’s .filter method:

Named function expressions demystified. Introduction Surprisingly, a topic of named function expressions doesn’t seem to be covered well enough on the web.

Named function expressions demystified

This is probably why there are so many misconceptions floating around. In this article, I’ll try to summarize both — theoretical and practical aspects of these wonderful Javascript constructs; the good, bad and ugly parts of them. In a nutshell, named function expressions are useful for one thing only — descriptive function names in debuggers and profilers. Well, there is also a possibility of using function names for recursion, but you will soon see that this is often impractical nowadays. I’ll start with a general explanation of what function expressions are how modern debuggers handle them. Function expressions vs. One of the two most common ways to create a function object in ECMAScript is by means of either Function Expression or Function Declaration. We can see that when identifier is omitted, that “something” can only be an expression. To demonstrate with examples: Read JavaScript Spessore. Prefaces Taking a page out of LiSP Teaching Lisp by implementing Lisp is a long-standing tradition.

Read JavaScript Spessore

If you set out to learn to program with Lisp, you will find book after book, lecture after lecture, and blog post after blog post, all explaining how to implement Lisp in Lisp. Customer Reviews: A Smarter Way to Learn JavaScript: The new approach that uses technology to cut your effort in half. Read JavaScript Allongé. A Pull of the Lever: Prefaces “Café Allongé, also called Espresso Lungo, is a drink midway between an Espresso and Americano in strength.

Read JavaScript Allongé

There are two different ways to make it. The first, and the one I prefer, is to add a small amount of hot water to a double or quadruple Espresso Ristretto. Like adding a splash of water to whiskey, the small dilution releases more of the complex flavours in the mouth. “The second way is to pull an extra long double shot of Espresso. Foreword by Michael Fogus As a life-long bibliophile and long-time follower of Reg’s online work, I was excited when he started writing books.

The act of writing is an iterative process with (very often) tight revision loops. In the case of JavaScript Allongé, you’ll find the Leanpub model a shining example of effectiveness. JavaScript Éloquent : Une introduction moderne à la programmation. Single page apps in depth (new free book) You-Dont-Know-JS/README.md at master · getify/You-Dont-Know-JS.