Fügen Sie 'use strict';
als erste Anweisung in einer Verpackungsfunktion, so dass es nur diese Funktion beeinflusst. Dies verhindert Probleme beim Verketten von Skripten, die nicht streng sind.
Siehe Douglas Crockfords neuesten Blog-Beitrag Strict Mode Is Coming To Town .
Beispiel aus diesem Beitrag:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
Update:
Wenn Sie die Sofortfunktion nicht einbinden möchten (z. B. ein Knotenmodul), können Sie die Warnung deaktivieren.
Für JSLint (per Zhami ):
/*jslint node: true */
Für JSHint :
/*jshint strict:false */
oder (per Laith Shadeed )
/* jshint -W097 */
Überprüfen Sie die Zuordnung im JSHint-Quellcode (Details in den Dokumenten ), um eine beliebige Warnung von JSHint zu deaktivieren .
Update 2: JSHint unterstützt node:boolean
Option. Siehe .jshintrc
bei Github .
/* jshint node: true */
-1
/*jshint strict:false */
, klarer zu machen, was Sie tun (es sei denn, Ihr numerischer Code hat einen besonderen Vorteil, den ich nicht kenne)"use strict";
einmal pro Datei angeben zu müssen .Wenn Sie Module für NodeJS schreiben, sind diese bereits gekapselt. Teilen Sie JSLint mit, dass Sie einen Knoten haben, indem Sie oben in Ihre Datei einfügen:
quelle
/*jshint strict:false */
"node": true
zu .jshintrcIch würde vorschlagen, stattdessen jshint zu verwenden.
Es ermöglicht die Unterdrückung dieser Warnung über
/*jshint globalstrict: true*/
.Wenn Sie eine Bibliothek schreiben, würde ich nur empfehlen, global strict zu verwenden, wenn Ihr Code in Module eingekapselt ist, wie dies bei nodejs der Fall ist.
Andernfalls würden Sie jeden, der Ihre Bibliothek verwendet, in den strengen Modus zwingen.
quelle
strict: 'global'
jetzt und sehen Sie jshint.com/docs/options/#globalstrictIch habe nach dem plattformübergreifenden JavaScript- Blogbeitrag mit der Erstellung einer Node.js / browserify-Anwendung begonnen . Und ich bin auf dieses Problem gestoßen, weil mein brandneues Gruntfile jshint nicht bestanden hat.
Zum Glück habe ich im Leanpub-Buch über Grunt eine Antwort gefunden :
Durch Hinzufügen
node: true
zum jshintoptions
, um jshint in den "Knotenmodus" zu versetzen, wurden beide Fehler für mich entfernt.quelle
Fügen Sie im Stammverzeichnis Ihres Projekts eine Datei .jslintrc (oder im Fall von jshint .jshintrc) mit folgendem Inhalt hinzu:
quelle
An der Zeichenfolgenform ist von Natur aus nichts auszusetzen.
Anstatt die "globale" strenge Form zu vermeiden, um nicht strenges Javascript zu verketten, ist es wahrscheinlich besser, das verdammte nicht strenge Javascript einfach als streng zu korrigieren.
quelle
Ich denke, jeder hat den "plötzlich" Teil dieser Frage verpasst. Höchstwahrscheinlich weist Ihre .jshintrc-Datei einen Syntaxfehler auf, sodass die Zeile "Browser" nicht enthalten ist. Führen Sie es durch einen JSON-Validator, um festzustellen, wo der Fehler liegt.
quelle
Fügen Sie diese Zeilen am Startpunkt Ihrer Datei hinzu
quelle
So einfach ist das: Wenn Sie mit Ihrem gesamten Code streng umgehen möchten, fügen Sie ihn
"use strict";
am Anfang Ihres JavaScript hinzu.Wenn Sie jedoch nur mit einem Teil Ihres Codes streng sein möchten, verwenden Sie das Funktionsformular. Auf jeden Fall würde ich Ihnen empfehlen, es am Anfang Ihres JavaScript zu verwenden, da dies Ihnen hilft, ein besserer Programmierer zu sein.
quelle
"use strict";
oben in meine JS-Datei einfüge, sodass dies möglicherweise nicht ganz der Fall ist."use strict";
, bei der sie nur oben in Ihrem Code platziert wird. Es ist nur zulässig,"use strict;"
wenn es in eine Funktion eingeschlossen ist. (Mit JS_Hint_ können Sie jedoch das globale Formular verwenden. Die erforderliche Einstellung finden Sie in der obigen Antwort.)