В javascript нет ключевого слова undefined
, оно не работает как null
.
Когда вы используете
if(g===undefined)
undefined
будет проанализирован как идентификатор. Следовательно, интерпретатор должен проверить наличие переменной undefined
в глобальной области (окна). Этот поиск занимает некоторое время.
ИМХО, более правильный способ проверки неопределенности (хотя и не обязательно быстрее)
if(typeof(g) === 'undefined')
С другой стороны, выражение if(g)
, скорее всего, реализовано как неявное приведение к логическому значению, что, конечно, также занимает некоторое время.
Так что я предполагаю, что эти две разные операции не одинаково быстры в движках Firefox и Chrome.