About Nicholas C. Zakas

Recent Posts

Internet Explorer 8 user-agent

I was playing around with Fiddler today and found something interesting. Version 2.0 has a user-agent switch containing Internet Explorer 8. The user-agent string is as follows: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; WOW64) For those of the non-user-agent-string-understanding tribe, it basically indicates Internet Explorer 8.0 (MSIE 8.0) running on Windows 2003 (Windows NT... […]

Don’t forget navigator.platform

When discussions about JavaScript browser detection pop up, it usually is based around the user-agent string and accessing it via navigator.userAgent. However, there are a number of properties on navigator that are useful. One of the most useful is navigator.platform. navigator.platform returns a string representing the platform on which the browser is running. The platform... […]

IE: COM reers its ugly head

Most web developers have heard by now about the quirky implementation of Internet Explorer that separates JavaScript into two camps: JScript and COM. JScript represents the code you write as well as the basic ECMAScript data types and structures. While other browsers also use ECMAScript to represent DOM, Internet Explorer does not. Instead, IE uses... […]

What I’d like to see in HTML 5

There’s been a lot of discussion around HTML 5, what it should be, and what it shouldn’t be. Crockford’s post outlines his perspective on things in typical Crockford-fashion. I also have my own ideas about what I’d like to see in HTML 5. I shared this internally at Yahoo!, but thought I’d put it out... […]

YUI 2.4.0 has been released

As announced earlier today, YUI 2.4.0 has been released. I’ve contributed this time around in two areas. First, I did a major overhaul of YUI Test to allow for asynchronous tests. All tests now run asynchronously, which eliminates long-running script errors that may occur with large test suites. This asynchronous behavior also allows for tests... […]

The throttle() function

A little while ago, I blogged about downshifting your code over at the YUI Blog. In that entry, I described a pattern for throttling code such that it won’t be called as frequently. This technique proves to be invaluable when dealing with the resize event in Internet Explorer, which fires the event repeatedly as the... […]

Browsers too leniant with regular expressions

Just had an interesting issue pop up that I thought I’d share. We should all know by now that sometimes browsers are way too forgiving about the bad code we write. They insert HTML elements when tags aren’t closed properly and generally try to “help” developers as much as possible. This behavior also invades the... […]

Announcing the Yahoo! Juku

One of the most exciting things I’ve been working on at Yahoo! hasn’t been public knowledge until now. As announced on the YDN Blog, I’ve been taking part in the Yahoo! Juku program, which designed to train the next generation of great front end engineers (read more: The Harvard of JavaScript Training). To me, this... […]

JavaScript variable scoping trickery

I almost fell victim to this over the weekend, so thought I’d share a common JavaScript gotcha. What does the following line do? var start = stop = null; Most people will respond, “define a variable called start and a variable called stop and then set them both to null.” That is generally correct, but... […]

A plea to browser vendors

Attention Microsoft, Apple, Mozilla, and Opera – I’m starting to get a little tired of you…all of you. Some may pick on one of you more than the others (you know who you are, Microsoft), but realistically, you’re all bothering me a lot lately. You all want us, the web developers, to support your browser... […]