2012-03

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.

Displaying numbers in JavaScript

[2012-03-12] numbers, dev, javascript, jslang
This blog post explains how JavaScript displays numbers. It also examines when JavaScript uses exponential notation and when it uses fixed notation.

The jQuery Foundation has been created

[2012-03-07] jquery, dev, javascript, clientjs
jQuery has previously been managed by a board that was part of the Software Freedom Conservancy. Now an independent foundation has been created to perform that task.

Private data for objects in JavaScript

[2012-03-03] esnext, dev, javascript, jslang
Update 2012-10-21: In September 2012, The term “private name object” has been changed to “private symbol”.

JavaScript does not come with dedicated means for managing private data for an object. This post describes five techniques for working around that limitation:

2012-02

Array.prototype.concat is not generic

[2012-02-29] dev, javascript, jslang
The ECMAScript 5.1 specification states that the array method concat is generic [1]. This post argues that that isn’t true in practice.

New Node.js module “lazylines”: read a text stream, line by line

[2012-02-27] jsshell, dev, nodejs, javascript
The new Node.js module “lazylines” allows you to read a text stream, one line at a time, lazily.

Generate emails via mailto URLs on Node.js

[2012-02-25] jsshell, dev, nodejs, javascript
This post tells you how to generate emails on Node.js and open them in an email program. It uses mailto URLs to do so. The advantage of this approach is that you can manually check and edit such emails before sending them.

openurl – Node.js module for opening URLs

[2012-02-25] jsshell, dev, nodejs, javascript
openurl is a Node.js module for opening a URL via the operating system. This will usually trigger actions such as:
  • http URLs: open the default browser
  • mailto URLs: open the default email client
  • file URLs: open a window showing the directory (on OS X)

Major and minor JavaScript pitfalls and ECMAScript 6

[2012-02-23] esnext, dev, javascript, jslang
Update 2012-02-24: New content in sections
  • 2.1. Function-scoped variables
  • 2.2. Inadvertent sharing via a closure
  • 2.7. for...in is weird

JavaScript has many pitfalls. This post examines whether they make JavaScript “unfixable” as a language – as some argue. To do so, it separates the pitfalls into two categories: The ones that become harmless after learning about them and the ones that don’t. We’ll also look at how the upcoming ECMAScript 6 fixes most problems.

Warning: If you are new to JavaScript then don’t let this post be your introduction to it. Consult other material first.

Twitter to eliminate their hashbang (#!) URLs

[2012-02-21] app urls, browser, dev, twitter, webdev, computers
In a conversation triggered by Tim Haines, Twitter front end engineer Dan Webb refers to his article “It's About The Hashbangs” on the problems of using #! URLs in JavaScript. He then goes on to confirm: