2012-01

JavaScript myth: JavaScript needs a standard bytecode

[2012-01-22] jsmyth, dev, javascript, jslang
The idea is obvious: Why not standardize the bytecode of the virtual machines (VMs) that JavaScript runs on? That would mean that JavaScript programs could be delivered as bytecode and thus would be smaller and start more quickly (after having been loaded). Additionally, it would seem to be easier to port other languages to web browsers, by targeting that bytecode. This post makes its case in two steps: First, it shows that bytecode has several disadvantages. Second, it explains that source code is not as bad a solution as it seems.

What is JavaScript’s typeof operator used for?

[2012-01-20] dev, javascript, jslang
JavaScript’s typeof is a complicated beast – it can be used for many things, but also has many quirks. This post lists its use cases, points out problems and presents alternatives.

The first ECMAScript.next features in Firefox and Chrome

[2012-01-17] esnext, dev, javascript
Update 2012-01-23:ECMAScript 6 support in Mozilla” on the Mozilla Development Network.

The next version of ECMAScript (code-named ECMAScript.next [1]) will be standardized by 2013. This post enumerates the first features that are currently being tested in Firefox and Chrome.

Automatically numbering headings via CSS

[2012-01-12] css, dev, html
This post shows you how to number HTML headings with CSS. That is, given the following HTML.
    <h1>My Article</h1>
    <h2>Introduction</h2>
    <h3>Rationale</h3>
    <h2>Background</h2>
With the proper CSS, the above will be displayed as
My Article
1. Introduction
1.1. Rationale
2. Background

GitHub: serve files to the web, with a single branch

[2012-01-10] dev, git
GitHub has a nifty feature called GitHub Pages that allows you to serve files in your repository to the web. Those files have to reside in the branch gh-pages, which is different from the usual master branch. To avoid the slightly cumbersome maintenance of two branches, this post shows you how to only work with gh-pages.

JavaScript inheritance by example

[2012-01-08] dev, javascript, jslang
Update 2012-03-19: New section on “Objects”, tips for what to read next.

This blog post illustrates several JavaScript inheritance topics via an example: We start with naive implementations of a constructor Point and its sub-constructor ColorPoint and then improve them, step by step.

Crockford’s JSDev: switching off privacy for testing

[2012-01-05] dev, javascript, jslang, jstools
Today, Douglas Crockford introduced a new project: JSDev. It solves a challenge with privacy: On one hand, you don’t want the outside world to have access to private functionality. On the other hand, you want to test it, via external unit tests.

The pitfalls of using objects as maps in JavaScript

[2012-01-03] dev, javascript, jslang
JavaScript is Spartan when it comes to built-in data structures. One commonly uses objects as maps from strings to values. This post points out three pitfalls when doing so.

The multiple roles of JavaScript objects and arrays

[2012-01-01] dev, javascript, jslang
Both objects and arrays play multiple roles in JavaScript. This blog post explains what those roles are.

2011-12

Why do some JavaScript methods have such long names?

[2011-12-28] dev, javascript, jslang
Allen Wirfs-Brock (the project editor of the ECMAScript 5 specification) recently mentioned the thought process behind method names such as Object.getOwnPropertyNames():