Я не абсолютно уверен когда дело доходит до JS, но я видел подобные вещи на других языках, и это обычно, потому что функция только проверяет, равен ли пустой указатель точно NaN (т.е. пустой === NaN был бы ложью). Другими словами не то, чтобы это думает, что пустой указатель является на самом деле числом, но это скорее, что пустым указателем не является NaN. Это, вероятно, потому что оба представлены по-другому в JS так, чтобы они не были точно равны, таким же образом это 9! == '9'.
$\overbrace{\hbox{Text}}^{\hbox{text above}}$
$\underbrace{\hbox{Text}}_{\hbox{text below}}$
$\stackrel{\hbox{Text above}}{\hbox{Text below}}$