Это странность, которую я иногда видел в JS - возможно, кто-то может пролить свет на нее.
Я выполняю тест для undefined для переменной:
if (x !== 'undefined'){}
или даже
if (typeof x !== 'undefined'){}
И браузер все равно выдает сообщение об ошибке:
ReferenceError: x is not defined
Даже
if (x) {}
выдает ошибку.
Это глобальная переменная уровня структуры, которую я проверяю, поэтому, возможно, что-то делать с разными областями. (Нет критических анализов глобальных переменных - опять же, это наличие рамки, которую я тестирую).