Recent Posts

Standards with sanity

A lot has been made out of the importance of staying within web standards and making sure that your code is semantically correct. The biggest thing that so-called experts talk about is the avoidance of using tables. Really, they mean not to use tables for layout. The argument is that the markup should be able... […]

Professional Ajax – Amazon’s #8 best tech book of 2006!

Just got pinged by my editor Jim about this: Top 10 Editors’ Picks: Computers & Internet. If you scroll down to #8, you’ll see Professional Ajax! Words can’t describe how excited I am about this. To be on this list is amazing, and the fact that it’s the only Ajax book on the list makes... […]

Browser detection versus feature detection

One of the more controversial chapters in my first book was the chapter on browser detection. I got flaming emails, blog comments, and reviews about the user-agent string detecting method, telling me that I was falsely promoting an outdated methodology for dealing with browser differences. Feature detection is the ideal, they all said, and that... […]

Minimizing closure usage

Been meaning to blog about this for a while, but just kept forgetting. Over at the Atlas and More Blog, Bertrand Le Roy has posted two articles on converting object definitions from using closures to using prototypes. Though the postings are mostly about using the latest version of Atlas, there is some good discussion of... […]

Congratulations to YUI team

The folks over at Linux Journal have named the Yahoo! User Interface (YUI) Library as the Editors’ Choice Software Module or Library for 2006! Congratulations to the team, they’re some of the brightest, hardest-working people in the tech industry and they consistently produce quality stuff. Even before I started at Yahoo!, the YUI Library was... […]

Adobe open sources Flash JavaScript engine

The other day, it was announced that Adobe would be submitting the source code of Tamarin, the JavaScript engine used in Flash, to Mozilla for open sourcing. In turn, Mozilla will be using it in future editions of Firefox. Why does this matter? The most important thing is that Tamarin is a just-in-time JavaScript compiler,... […]

The absorb() method

After reviewing the comments from everyone on the previous post, I’ve come up with the next generation of the absorb() function: the absorb() method. It occurred to me that this function really was begging to be a method of Object. So, without further adieu: Object.absorb = function (destination /*:Object*/, source /*:Object*/, overwrite /*:Boolean*/) /*:Object*/ {... […]

IE’s innerHTML problem

How do you remove content from an element that’s already been added? The fastest way is to use innerHTML and set it to an empty string. Boom! The content is now gone. This is much faster than going through and removing each child using removeChild(). But there’s a problem with this approach in Internet Explorer.... […]

The absorb() function

From time to time I see people blogging about their most favorite or useful functions. Here’s a little function I wrote called absorb(). Its purpose is quite simple, to have one object “absorb” another, i.e., an object receives all of the properties and methods of another object. The difference from other similar functions is that... […]

The case against Hungarian notation in JavaScript

For years, I’ve used Hungarian Notation when programming in JavaScript. Both of my books use Hungarian notation for all code examples and recommend that others do the same. Now, I’ve been aware of the arguments against using Hungarian notation for a while as well, but most just said, “don’t use it” without offering much in... […]

Copyright © 2004-2016 Nicholas C. Zakas. All Rights Reserved. All code examples on all pages, unless otherwise indicated, are BSD licensed. Blog Feed