Подтвердить что ты не робот

Jshint.com требует "использовать строгий". Что это значит?

Jshint.com сообщает об ошибке:

Строка 36: var signin_found; Отсутствует инструкция "use strict".

4b9b3361

Ответ 1

Добавьте "use strict" вверху вашего js файла (в строке 1 вашего .js файла):

"use strict";
...
function initialize_page()
{
    var signin_found;
    /*Used to determine which page is loaded / reloaded*/
    signin_found=document.getElementById('signin_button');
    if(signin_found) 
{

Подробнее о "use strict" в другом вопросе здесь, в stackoverflow:

Что такое "use strict" делать в JavaScript и каковы причины этого?

UPDATE.

В jshint.com что-то не так, это требует от вас "использовать строгую" внутри каждой функции, но ее нужно разрешить глобально для каждого файла.

jshint.com считает, что это неправильно.

"use strict";    
function asd()
{
}

Но в этом нет ничего плохого...

Он хочет, чтобы вы использовали "использовать строгую" для каждой функции:

function asd()
{
    "use strict";
}
function blabla()
{
    "use strict";
}

Затем он говорит:

Хорошая работа! JSHint не обнаружил никаких проблем с вашим кодом.

Ответ 2

Поддерживающий JSHint здесь.

JSHint - версия, используемая на веб-сайте - требует использования строгого режима на уровне функции в вашем коде. Это очень легко отключить, вам просто нужно снять флажок "Предупреждать, когда код не находится в строгом режиме":

jshint.com screenshot

Почему бы нам не разрешить глобальный строгий режим, предложенный @Czarek? Поскольку некоторые из файлов JavaScript, используемых на вашей странице, могут не соответствовать строгому режиму, а глобальный строгий режим нарушает этот код. Чтобы использовать глобальный строгий режим, существует опция globalstrict.

Надеюсь, что это поможет!

Ответ 3

Я думаю, что это потому, что jshint пытается "защитить" нас от случайного строкового режима назначения для всего файла. А также полезно обернуть код анонимной функцией или использовать somekind пространства имен.

например. оба работают в строгом режиме:

(function() {

   "use strict";

   function foo() {
        .....
   }

   function bar() {
        .....
   }
}());

Ответ 4

JSlint требует, чтобы ваш код находился в "строгом режиме"

Для этого просто добавьте "use strict"; в начало вашего кода.