JavaScript - язык снисходительный. Некоторые из его синтаксиса являются необязательными, и язык восстанавливается после ошибок с большей аккуратностью, чем многие другие. Но такое удержание за руку влечет за собой штраф: может быть легче вносить ошибки, а непоследовательный код труднее читать.
К счастью, если вы хотите проявить больше дисциплины, есть простой способ сделать это: строгий режим. Строгий режим - это способ попросить JavaScript более решительно реагировать при обнаружении проблем в вашем коде.
Что такое строгий режим?
В нескольких языках используется концепция строгого режима: режима, в котором выполняется более тщательная оценка и выполнение кода. Возможно, вы знакомы со строгим типом документа HTML, в котором не рекомендуются определенные элементы и атрибуты.
Perl, еще один интерпретируемый язык сценариев, давно имеет собственный строгий режим. Этот режим запрещает определенные типы небезопасного выражения.
Как использовать строгий режим в JavaScript?
Внутри скрипта поместите оператор «use strict» прямо вверху перед любыми другими операторами:
// весь этот скрипт будет в строгом режиме
'использовать строго';
Обратите внимание, что вы можете включать перед ним комментарий, но не утверждения. Вы можете включить строгий режим в файле JavaScript или в начале блока сценария в файле HTML. Вы также можете включить строгий режим для каждой функции:
function strict () {
// Синтаксис строгого режима на уровне функции
'использовать строго';
return "Эта функция строгая";
}
function свободно () {
return "Эта функция НЕ является строгой";
}
Включив строгий режим, обязательно протестируйте свой код. Если вы работаете в Интернете, откройте Консоль JavaScript, чтобы вы могли определить любые новые ошибки.
Что делает строгий режим JavaScript?
Короче говоря, строгий режим будет менее прощать определенные типы проблемного кода. Вместо того, чтобы игнорировать проблемы и продолжать выполнение, некоторые ошибки останавливают скрипт. Часто это безопаснее, чем продолжать в нежелательных обстоятельствах.
Предотвращает случайные глобалы
Лучшим примером, от которого защищает строгий режим, является создание случайных глобальных переменных. В нормальном исполнении этот код:
myVar = 17;
Он создаст свойство с именем myVar для глобального объекта, если вы ранее не объявили myVar. В веб-браузере глобальным объектом обычно является окно:
console.log (window.myVar);
>> 17
Однако если вы добавите инструкцию use strict, вы увидите ошибку в консоли, например:
Uncaught ReferenceError: myVar не определен
Причина, по которой это так полезно, заключается в том, что он обнаруживает типичный случай опечатки. Легко ошибиться при вводе имени переменной, и многие языки заметят такую ошибку.
Но по умолчанию JavaScript просто принимает область видимости глобального объекта и продолжает работу, как будто все в порядке. Некоторый код может намеренно зависеть от этого поведения, о чем вы должны знать, решая использовать строгий режим.
Смотрите также: Как сохранить ваш код в чистоте с помощью инкапсуляции объектов
Делает отказ явным
Некоторое поведение в JavaScript дает сбой, но делает это незаметно. Вы можете не знать о таких ошибках, если специально не проверяете их. Например, NaN - это особое свойство глобального объекта, представляющее недопустимое число. Это свойство доступно только для чтения, но вы все равно можете попытаться записать в него:
NaN = 2;
>> 2
Но даже если это задание выглядит успешным, этого не произошло:
NaN
>> NaN
В строгом режиме вы получите фактическую ошибку о том, что вы не можете назначить NaN. В этом коде используется функция, позволяющая продемонстрировать строгий режим в консоли:
javascript
function badNaN () {"использовать строго"; окно. NaN = 2; }
>> undefined
badNan ()
>> Uncaught TypeError: невозможно назначить только для чтения свойство NaN объекта '#'
at badNaN (: 1: 46)
при: 1: 1
Это классический пример, который показывает, что, хотя незнание может быть блаженством, иногда лучше знать, если что-то пойдет не так.
Предупреждает о повторяющихся параметрах
В последнем примере рассматривается малоизвестная функция JavaScript. Вы можете удивиться, узнав, что имена параметров не обязательно должны быть уникальными:
функция dupeParam (а, а, с) {console.log (а); }
>> undefined
dupeParam (2, 4, 8)
>> 4
Обратите внимание, что JavaScript присваивает последнее значение повторяющемуся параметру. Теперь это поведение не особенно полезно. На самом деле, для JavaScript было бы полезнее сообщить нам об ошибке, и именно это делает строгий режим:
function dupeParam (a, a, c) {"использовать строго"; }
<< Uncaught SyntaxError: повторяющееся имя параметра не допускается в этом контексте
Используйте строгий режим для дополнительной надежности кода
Передовая практика и средства обеспечения их соблюдения идут рука об руку. В некоторых случаях, например, когда вы занимаетесь профессиональным программированием, вам нужно проявлять как можно больше дисциплины. Даже если вы просто работаете над хобби-проектом с открытым исходным кодом, сопровождающий может предпочесть использовать строгий режим в качестве стандартного.
В конечном итоге это зависит от вас, но полезно знать, что рука помощи доступна. Как программист, вы всегда должны быть в курсе передовых практик и того, что вы можете сделать, чтобы обеспечить их соблюдение.
Ваш код должен быть понятным и простым в обслуживании. Вот несколько других принципов программирования, которые помогут вам навести порядок.
Читать далее
- Программирование
- JavaScript
- Веб-разработка
- Языки программирования
Бобби - энтузиаст технологий, проработавший разработчиком программного обеспечения большую часть двух десятилетий. Он увлечен играми, работает главным редактором журнала Switch Player Magazine и занимается всеми аспектами онлайн-публикации и веб-разработки.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться