Включите 'use strict';
в качестве первого оператора в функцию-обертку, чтобы она влияла только на эту функцию. Это предотвращает проблемы при объединении скриптов, которые не являются строгими.
См. Последнее сообщение в блоге Дугласа Крокфорда. Строгий режим приближается к городу .
Пример из этого поста:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
Обновление:
если вы не хотите использовать непосредственную функцию (например, это модуль узла), вы можете отключить предупреждение.
Для JSLint (по Жами ):
/*jslint node: true */
Для JSHint :
/*jshint strict:false */
или (в соответствии с Laith Shadeed )
/* jshint -W097 */
Чтобы отключить любое произвольное предупреждение от JSHint, проверьте карту в исходном коде JSHint (подробности в документации ).
Обновление 2: JSHint поддерживает node:boolean
опцию. Смотрите .jshintrc
на GitHub .
/* jshint node: true */
-1
/*jshint strict:false */
бы сделать более понятным то, что вы делаете (если нет особой выгоды для вашего числового кода, о котором я не знаю)"use strict";
только один раз для каждого файла.Если вы пишете модули для NodeJS, они уже инкапсулированы. Сообщите JSLint, что у вас есть узел, включив его в начало файла:
источник
/*jshint strict:false */
"node": true
в .jshintrcЯ бы предложил вместо этого использовать jshint .
Это позволяет подавить это предупреждение через
/*jshint globalstrict: true*/
.Если вы пишете библиотеку, я бы предложил использовать глобальный строгий, если ваш код инкапсулирован в модули, как в случае с nodejs.
В противном случае вы бы принудили всех, кто использует вашу библиотеку, в строгом режиме.
источник
strict: 'global'
сейчас и посмотрите jshint.com/docs/options/#globalstrictЯ начал создавать приложение Node.js / browserify после публикации блога о кросс-платформенном JavaScript . И я столкнулся с этой проблемой, потому что мой новый Gruntfile не прошел jshint.
К счастью, я нашел ответ в книге Leanpub о Grunt :
Добавление
node: true
в jshintoptions
, чтобы перевести jshint в «режим узла», удалило обе ошибки для меня.источник
Добавьте файл .jslintrc (или .jshintrc в случае jshint) в корень вашего проекта со следующим содержимым:
источник
В строковой форме нет ничего плохого.
Вместо того чтобы избегать «глобальной» строгой формы для беспокойства по поводу конкатенации нестрогого javascript, вероятно, лучше просто исправить чертовски нестрогий javascript, чтобы он был строгим.
источник
Я думаю, что все пропустили «внезапно» часть этого вопроса. Скорее всего, ваш .jshintrc имеет синтаксическую ошибку, поэтому он не включает строку 'browser'. Запустите его через валидатор json, чтобы увидеть, где находится ошибка.
источник
добавить эти строки в начальную точку вашего файла
источник
Вот как это просто: если вы хотите быть строгим со всем своим кодом, добавьте
"use strict";
в начале ваш JavaScript.Но если вы хотите быть строгим только с некоторым кодом, используйте форму функции. В любом случае, я бы порекомендовал вам использовать его в начале вашего JavaScript, потому что это поможет вам стать лучшим программистом.
источник
"use strict";
верхнюю часть моего файла JS, так что это может быть не совсем так."use strict";
, где он просто помещается вверху вашего кода. Это разрешено только"use strict;"
при включении в функцию. (JS_Hint_ позволяет вам использовать глобальную форму, хотя - см. Ответ выше для необходимой настройки).