3 ms·
IE9 actually gets this one correct according to the language spec, but I assume it was a bad assumption that made it incorrect. The Number constructor is suppo
by SoftwareMaven 16y ago
IE9 actually gets this one correct according to the language spec, but I assume it was a bad assumption that made it incorrect.
The Number constructor is supposed to call ToNumber on its parameter, which is supposed to return NaN if it can't parse StringNumericLiterals, which would be the case with "".
I think the confusion came from "" being treated as "false" in JavaScript, and Number is supposed to return 0 if it isn't given a parameter. I could imagine the code in the Number constructor looking like this for non-IE browsers:
if (param)
num = ToNumber(param)
else
num = 0
whereas in IE, it probably looks more like this:
if (param != undefined)
num = ToInteger(param)
else
num = 0