При использовании строгого режима при доступе к неопределенным переменным генерируются исключения.javascript "use strict"; область блока не ведет себя правильно
Рассмотрим следующий пример:
"use strict";
alert(typeof mistypedVaraible + " one");
alert(mistypedVaraible + " two");
только первые огни предупреждения, потому что исключение при попытке получить доступ к неопределенной переменной во второй боевой готовности. Таким образом, определить его до второго предупреждения:
"use strict";
alert(typeof mistypedVaraible + " one");
if(typeof mistypedVaraible == "undefined") { var mistypedVaraible; }
alert(mistypedVaraible + " two");
Оба оповещения пожара, потому что тест на неопределенный заявил переменный.
Но если тест не пройден, и переменная не нужно определять, 2-ые пожары Уведомления в любом случае, как бы «если» блок был выполнен, чтобы определить переменную:
"use strict";
alert(typeof mistypedVaraible + " one");
if(typeof mistypedVaraible != "undefined") { var mistypedVaraible; }
alert(mistypedVaraible + " two");
Что здесь происходит?
Оба оповещения будут срабатывать в любом случае - нет условия, которое регулирует второе. –
Объявление переменной появляется в обоих, что вы ожидали? –