Решение проблемы с функциональной формой 'use strict' в JSLint

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если JSLint уведомляет вас о необходимости использовать 'use strict', просто заключите ваш код в немедленно вызываемое функциональное выражение (IIFE). Так ошибка будет устранена, поскольку ваш код будет изолирован следующим образом:

JS
Скопировать код
(function() {
    "use strict";
    // Ваш код
})();

Таким образом 'use strict' будет применено в конфине функции и не затронет глобальную область видимости.

Понимание функциональной формы "use strict"

Строгий режим в JavaScript – это механизм для написания более упорядоченного и дисциплинированного кода. Он помогает предотвратить некоторые потенциально невидимые ошибки.

JS
Скопировать код
function myFunction() {
    "use strict";
    // Код внутри функции соответствует строгим правилам
}

Работа с инструментами для линтинга

С использованием JSLint или JSHint, можно установить конфигурации, чтобы предотвратить предупреждения:

  • Для JSLint: активируйте режим Node, добавив комментарий /*jslint node: true */.
  • Для JSHint: или введите /*jshint strict:false */, чтобы игнорировать предупреждения о строгом режиме, или установите node:true в файле .jshintrc.

Инкапсуляция модулей

При использовании модульного программирования в таких средах, как модули ES6 или Node.js, строгий режим применяется по умолчанию. Инкапсулируйте ваш код с помощью экспорта модуля:

JS
Скопировать код
// В Node.js
module.exports = function() {
    "use strict";
    // Код вашего модуля в строгом режиме
};

Это обеспечит выполнение вашего модуля по всем правилам строгого режима, при этом сохраняя стандарты программирования сообщества.

Конфигурационные файлы линтеров

С помощью файлов .jslintrc или .jshintrc вы можете сообщить линтерам о вашем предпочтении использования 'use strict':

json
Скопировать код
{
    "strict": true,
    "node": true,
    "globalstrict": true
}

Эти настройки определяют общие правила для строгого режима и освобождают вас от необходимости вносить директивы в каждый скрипт.

Визуализация

Для наглядного примера сравним стандартный режим и строгий режим:

  • 🖊️ Писать код в стандартном режиме можно сравнить с использованием маркера; он удобен, но сложности могут возникнуть, если вы не достаточно аккуратны.
  • ✒️ В свою очередь, 'use strict' напомниает шариковую ручку; она требует аккуратности и оставляет ясные, долго сохраняющиеся следы.

Применение строгого режима в функции аналогично рисованию внутри заданных границ, ограничивая действия там, где это необходимо:

JS
Скопировать код
function sketchArt() {
    "use strict";  // ✒️ Шариковая ручка на службе!
    // ... Ваш код ...
}

Сравнение очевидно:

  • 🖊️ = Быстрое, свободное программирование с увеличенной вероятностью ошибок.
  • ✒️ = Дисциплинированный, обдуманный подход к разработке с 'use strict', выступающим в качестве вашего наставника.

Где я должен применять строгий режим?

Основные сценарии использования

Когда и где использовать строгий режим? Везде, где это возможно:

  • В библиотеках: используйте его в объеме всего вашего модуля, чтобы не дать коду выйти из под контроля.
  • В приложениях: применяйте его на верхнем уровне ваших IIFE или модулей для предотвращения возможного появления ошибок.
  • В Node.js: строгий режим уже по умолчанию включен в каждом модуле.

Соблюдая 'use strict' в ограниченной области видимости, вы сводите к минимуму глобальные конфликты и обеспечиваете совместимость.

Использование инструментов для линтинга

Инструменты для линтинга, как, например, ESLint, представляют собой гибко настраиваемые опции конфигурации. Компиляционные средства, такие как Grunt/Gulp, помогут автоматизировать проверку строгого режима в процессе разработки.

Понимание последствий

Однако помните, что когда строгий режим активирован, его не получится отключить в данной функции или скрипте. В связи с этим, равномерно и авторитетно примените его в JavaScript-окружении и регулярно тестируйте ваш код с использованием таких инструментов, как grunt jshint.

Полезные материалы

  1. Строгий режим JavaScript | MDN – Описание и правила использования строгого режима.
  2. JSLint: Инструмент для контроля качества кода на JavaScript – Инструмент JSLint, преследующий цель контроля качества кода и обращающий внимание на вопросы, связанные со строгим режимом.
  3. Дуглас Крокфорд о JavaScript – Часть 8: Стиль программирования и ваш мозг – Лекция о значимости качественного программирования.
  4. Stack Overflow обсудил функциональную форму 'use strict' – Обсуждение возникновших в JSLint проблем со строгим режимом.
  5. Спецификация ECMAScript – ECMA-262 5.1 – Спецификация стандартов ECMAScript, включающая разделы по строгому режиму.
  6. ESLint – Адаптируемый инструмент для нахождения в коде JavaScript проблем – ESLint поддерживает строгий режим среди множества других правил написания кода.
  7. Принципы написания стандартного и идиоматического JavaScript – Стандарты и рекомендации для создания высококлассной идиоматической JavaScript-архитектуры.