Я только что запустил очень простой JavaScript тест производительности (не спрашивайте, почему). Тест объявляет переменную, но не присваивает ей ничего:
var x;
Затем он сравнивает скорость сравнения переменной значения с null и с undefined, другими словами:
var y = (x == null); и var y = (x == undefined);.
Я ожидал, что сравнение с undefined будет поститься. На самом деле это было совсем близко. Сравнение с null было самым быстрым, примерно на 80% быстрее.
Результаты, описанные выше, взяты из запуска тестов в Chrome (версия 13). Запуск их в Firefox дает результаты гораздо ближе к тому, что я ожидал (сравнение с undefined выполняется быстрее, чем с null, хотя и очень незначительно).
Итак, мой вопрос в том, что может быть причиной этого? Почему Chrome, похоже, так сильно отличается от null?
Для быстрой справки, здесь снимок экрана результатов:
