Dołączam oświadczenie:
"use strict";
na początku większości moich plików Javascript.
JSLint nigdy przed tym nie ostrzegał. Ale teraz jest tak, mówiąc:
Użyj postaci funkcyjnej „use strict”.
Czy ktoś wie, jaka byłaby „forma funkcji”?
źródło
Dołączam oświadczenie:
"use strict";
na początku większości moich plików Javascript.
JSLint nigdy przed tym nie ostrzegał. Ale teraz jest tak, mówiąc:
Użyj postaci funkcyjnej „use strict”.
Czy ktoś wie, jaka byłaby „forma funkcji”?
Uwzględnij 'use strict';
jako pierwszą instrukcję w funkcji zawijania, więc wpływa ona tylko na tę funkcję. Zapobiega to problemom podczas łączenia skryptów, które nie są ścisłe.
Zobacz najnowszy post na blogu Douglasa Crockforda Strict Mode Is Coming To Town .
Przykład z tego postu:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
Aktualizacja: Jeśli nie chcesz zawijać funkcji natychmiastowej (np. Jest to moduł węzła), możesz wyłączyć ostrzeżenie.
W przypadku JSLint (na Zhami ):
/*jslint node: true */
W przypadku JSHint :
/*jshint strict:false */
lub (według Laith Shadeed )
/* jshint -W097 */
Aby wyłączyć dowolne ostrzeżenie z JSHint, sprawdź mapę w kodzie źródłowym JSHint (szczegóły w dokumentacji ).
Aktualizacja 2: JSHint obsługuje node:boolean
opcję. Zobacz .jshintrc
na github .
/* jshint node: true */
-1
/*jshint strict:false */
, co robisz (chyba że kod numeryczny ma szczególne zalety, których nie jestem świadomy)"use strict";
tylko raz na plik.Jeśli piszesz moduły dla NodeJS, są one już zamknięte. Poinformuj JSLint, że masz węzeł, umieszczając na górze pliku:
źródło
/*jshint strict:false */
"node": true
do .jshintrcSugerowałbym zamiast tego użyć jshint .
Pozwala to ukryć to ostrzeżenie poprzez
/*jshint globalstrict: true*/
.Jeśli piszesz bibliotekę, sugerowałbym użycie globalnej ścisłości tylko wtedy, gdy kod jest zamknięty w moduły, tak jak w przypadku nodejs.
W przeciwnym razie zmusisz wszystkich, którzy korzystają z Twojej biblioteki, do trybu ścisłego.
źródło
strict: 'global'
teraz i zobacz jshint.com/docs/options/#globalstrictZacząłem tworzyć aplikację Node.js / Browserify po wpisie na blogu JavaScript na wielu platformach . I natknąłem się na ten problem, ponieważ mój nowy plik Gruntfile nie przeszedł jshint.
Na szczęście znalazłem odpowiedź w książce Leanpub na temat Grunta :
Dodanie
node: true
do jshintaoptions
, aby wprowadzić jshinta w „tryb węzła”, usunęło dla mnie oba błędy.źródło
Dodaj plik .jslintrc (lub .jshintrc w przypadku jshint) w katalogu głównym projektu o następującej treści:
źródło
Nie ma nic złego w formie łańcucha.
Zamiast unikać „globalnej” ścisłej formy w celu obawy o połączenie nieściśliwego javascript, prawdopodobnie lepiej jest po prostu naprawić ten cholerny, jaśniejszy skrypt javascript.
źródło
Myślę, że wszyscy przeoczyli „nagle” część tego pytania. Najprawdopodobniej w pliku .jshintrc wystąpił błąd składniowy, więc nie zawiera wiersza „przeglądarki”. Uruchom go przez moduł sprawdzania poprawności json, aby zobaczyć, gdzie jest błąd.
źródło
dodaj te linie do punktu początkowego pliku
źródło
Oto jakie to proste: jeśli chcesz zachować ścisłość całego kodu, dodaj
"use strict";
na początku kodu JavaScript.Ale jeśli chcesz być ściśle związany z częścią kodu, skorzystaj z formularza funkcji. W każdym razie poleciłbym ci użycie go na początku JavaScript, ponieważ pomoże ci to być lepszym programistą.
źródło
"use strict";
na górze mojego pliku JS, więc może to nie być do końca prawda."use strict";
, w której jest umieszczony na górze kodu. Zezwala tylko"use strict;"
wtedy, gdy jest zawinięty w funkcję. (JS_Hint_ pozwala jednak na użycie formularza globalnego - patrz odpowiedź powyżej dla potrzebnych ustawień).