Вы здесь

Web-разработка Как строгий режим "use strict" в JavaScript может сэкономить пару часов

Строгий режим (директива "use strict") — очень хорошее явление в JavaScript и начать с ним работать очень просто!

Как его применить

  1. // file.js
  2. "use strict"
  3. function doStuff(){
  4. // строгий режим активирован
  5. }

В описанном выше примере строгий режим применяется по всему коду в файле file.js.

Если вы хотите подключить его только внутри функции, используйте следующий пример:

  1. // file.js
  2. function a(){
  3. "use strict";
  4. // строгий режим активирован только для кода внутри функции
  5. function nestedFunction(){
  6. // и будет также применяться внутри вложенной функции
  7. }
  8. }

Преимущества

Продублированные ключи в объекте

  1. var zombie = {
  2. eyeLeft : 0,
  3. eyeRight: 1,
  4. // … много ключей …
  5. eyeLeft : 1
  6. }

В результате мы получим ошибку, так как ключ eyeLeft встречается дважды. В данном случае строгий режим спасёт вас от дублирования ключа в объекте.

Переменные без var

  1. plane = 5;

Наверняка вы уже знаете, какие проблемы могут возникнуть, если забыть добавить ключевое слово var в объявлении переменной. Если нет, то знайте, что отлаживать потом такой код потом весьма затруднительно, ведь подобная переменная будет объявлена в глобальном контексте и может изменяться другими частями программы.

Только представьте переменную i, объявленную глобально. Это может внести беспорядок во все вложенные циклы в приложении.

Продублированные аргументы

  1. function run(fromWhom, fromWhom){}

Обратите внимание что аргумент fromWhom прописан дважды, для данного случая в строгом режиме также будет выводиться ошибка

Чем чревата подобная ошибка:

  1. function run(fromWhom, fromWhom){alert(fromWhom)}
  2. run(1, 2);
  3. // alert: 2

Фиксация arguments внутри функции

  1. var run = function(fromWhom){
  2. arguments[0] = 'alien';
  3. alert(fromWhom);
  4. }
  5. run('zombie');
  6. // alert: 'alien';

Если использовать строгий режим:

  1. var run = function(fromWhom){
  2. "use strict";
  3. arguments[0] = 'alien';
  4. alert(fromWhom);
  5. }
  6. run('zombie');
  7. // alert: 'zombie';

Насколько неочевидным является то, что при изменении аргументов
(arguments[0] = 'alien') изменяется именованный аргумент fromWhom?
Директива "use strict" спасёт вас из этого затруднительного положения.

Похожие материалы

Комментарии

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите код с картинки