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