Шаги по переводу проекта на использование «строгого режима»? - PullRequest
2 голосов
/ 25 февраля 2012

Что я должен проверить перед тем, как взять существующую кодовую базу и преобразовать ее в Строгий режим ?

Проект представляет собой веб-сайт, предназначенный для работы во всех браузерах, начиная с IE 8 и выше, и на данный момент не имеет большого количества модульных тестов или настроек непрерывной интеграции js linter.

  1. На какие языковые возможности нужно обратить внимание, которые может использовать наш собственный код или библиотеки, которые мы используем, которые будут молча ломаться, если я включу строгий режим?
  2. Есть ли процесс анализа кода, который может рассмотреть весь мой проект и указать на конкретные подводные камни из этой миграции?
  3. Какие-нибудь конкретные браузеры, о которых я должен беспокоиться? (Ну, я полагаю, IE 8 - обычный подозреваемый ... но что именно искать в поддержке IE 8 или в ее строгом режиме?)
  4. Если я не ищу неочищенную производительность, но сначала избегаю ошибок ... является ли строгий режим экономически эффективным способом раннего обнаружения ошибок?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

Один бит строгого кода, который я больше всего нарушаю, - это строгий оператор delete .

delete someobject.someproperty выдает ошибку, если someobject.someproperty не определен, тогда как в 'normal'код удаляет свойство, если оно существует, и продолжает без ошибок, если его нет.

Это легко исправить -

if('someproperty' in someobject) delete someobject.someproperty;

Мне понравился старый способ, но все меняется,Некоторые люди ненавидят отказываться от аргументов. Калли ...

1 голос
/ 28 июля 2012

Вы можете избежать создания прототипа , изменив код следующим образом:

if (someObject.hasOwnProperty("someProperty")) {
    delete someObject.someProperty;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...