2012-04

How numbers are encoded in JavaScript

[2012-04-19] numbers, dev, javascript, jsint, jslang
All numbers in JavaScript are floating point. This blog post explains how those floating point numbers are represented internally in 64 bit binary. Special consideration will be given to integers, so that, after reading this post, you will understand what happens in the following interaction:
    > 9007199254740992 + 1
    9007199254740992

    > 9007199254740992 + 2
    9007199254740994

Node.js: expanding shortened URLs

[2012-04-17] dev, nodejs
This blog post explains how one can use Node.js to expand a URL that has been shortened by a service such as t.co (built into Twitter) and bit.ly. We’ll look at a simple implementation and at an advanced implementation that uses promises.

Offer files for download in HTML5: a[download]

[2012-04-16] dev, html5, webdev
The new attribute download for <a> tags allows one to offer a file for download – instead of displaying it in the browser.

ECMAScript 6: arrow functions and method definitions

[2012-04-12] esnext, dev, javascript
Follow-up blog post from 2013-08-11:Callable entities in ECMAScript 6”.

In JavaScript, one aspect of creating a function inside a method is difficult to get right: handling the special variable this. ECMAScript.next will make things easy by introducing two constructs: arrow functions and method definitions. This blog posts explains what they are and how they help.

Handing variables to eval

[2012-04-04] eval, dev, javascript, jslang
Problem: You have an object that assigns values to names and want to use those names in an expression that is to be evaluated by eval. The classic solution is to use the with statement. But that statement is deprecated [1], starting with ECMAScript 5 strict mode [2]. This blog post describes an alternative implementation technique.

2012-03

Converting a value to string in JavaScript

[2012-03-29] dev, javascript, jslang
In JavaScript, there are three main ways in which any value can be converted to a string. This blog post explains each way, along with its advantages and disadvantages.

CSS Grid Layout is coming to Firefox in 2012

[2012-03-26] dev, firefox, webdev, layout

JavaScript’s two zeros

[2012-03-23] numbers, dev, javascript, jslang
JavaScript has two zeros: −0 and +0. This post explains why that is and where it matters in practice.

What are the most popular JavaScript keywords?

[2012-03-18] dev, javascript, jslang
Ariya Hidayat has used is Esprima parser to count the most popular keywords in a corpus of JavaScript libraries.

Stricter equality in JavaScript

[2012-03-14] dev, javascript, jslang
Update 2012-11-08: The is operator will not be added to ECMAScript (probably ever). But this article is still relevant, because Object.is() will be part of ECMAScript 6 and because it sheds light on how === works.

Most JavaScript programmers are aware that “normal” equality (==) should be avoided in favor of strict equality (===) [1]. However, every now and then you need something even stricter than ===: If you want to check for NaN or if you want to distinguish between -0 and +0. This blog post explains the details and ECMAScript.next’s [2] solution, the “is” operator.