Jshint.com erfordert “use strict”. Was bedeutet das? [duplicate]

Lesezeit: 3 Minuten

Jshint.com gibt den Fehler aus:

Zeile 36: var signin_found; Fehlende “Use Strict”-Anweisung.

Benutzer-Avatar
Zarek Tomczak

Fügen Sie “use strict” oben in Ihrer js-Datei hinzu (in Zeile 1 Ihrer .js-Datei):

"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) 
{

Mehr zu “use strict” in einer anderen Frage hier auf stackoverflow:

Was macht “use strict” in JavaScript und was ist der Grund dafür?

AKTUALISIEREN.

Mit jshint.com stimmt etwas nicht, es erfordert, dass Sie “use strict” in jede Funktion einfügen, aber es sollte erlaubt sein, es global für jede Datei festzulegen.

jshint.com hält dies für falsch.

"use strict";    
function asd()
{
}

Aber daran ist nichts auszusetzen…

Es möchte, dass Sie jeder Funktion “use strict” zuordnen:

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

Dann heißt es:

Gut gemacht! JSHint hat keine Probleme mit Ihrem Code gefunden.

  • Ich habe meine Antwort erneut aktualisiert und hoffe, dass es diesmal hilft.

    – Zarek Tomczak

    12. November 2011 um 21:22 Uhr


  • Tatsächlich könnten einige (falsche) Skripte versuchen, einfach mehrere Skripte zu verketten, was zu falschem Code führt (nicht strikter Code wird als strikt ausgeführt). Code streng pro Funktion zu machen, löst dieses Problem.

    – luiskubal

    12. November 2011 um 22:13 Uhr

  • Es ist nicht ungewöhnlich, dass Bündelungstools JS-Dateien verketten und dieses Problem verursachen. Wirklich, Sie sollten Ihre gesamte Datei in ein IIFE einschließen, um dies zu vermeiden und Variablen versehentlich in den globalen Bereich zu setzen. Siehe die Antwort von @lenrok7, um zu erfahren, wie das geht.

    – Jeff Walker Code Ranger

    1. April 2014 um 2:20 Uhr

JSHint-Betreuer hier.

JSHint – die auf der Website verwendete Version – erfordert, dass Sie in Ihrem Code den strikten Modus auf Funktionsebene verwenden. Es ist sehr einfach, das auszuschalten, Sie müssen nur das Kontrollkästchen “Warnen, wenn Code nicht im strikten Modus ist” deaktivieren:

jshint.com-Screenshot

Warum erlauben wir den globalen strengen Modus nicht, wie von @Czarek vorgeschlagen? Da einige der auf Ihrer Seite verwendeten JavaScript-Dateien möglicherweise nicht mit dem strikten Modus kompatibel sind und der globale strikte Modus diesen Code beschädigt. Um den globalen strengen Modus zu verwenden, gibt es eine Option namens globalstrict.

Ich hoffe, das hilft!

  • Ich sehe diese “globalstrict”-Option auf dem Screenshot nicht, ist sie irgendwo versteckt? Warum fügen Sie nicht ein weiteres Kontrollkästchen mit dem Namen “Global strikt zulassen” direkt unter “Wenn Code nicht im strikten Modus ist” hinzu und machen es zum Standard. Ich denke, dass die meisten Leute, die den strikten Modus verwenden, dies für ganze Dateien tun. Es ist ein wenig übertrieben, jeder Funktion eine solche Zeile hinzuzufügen.

    – Zarek Tomczak

    13. November 2011 um 23:49 Uhr


  • Aus Gründen der Einfachheit der Website. Sie können alle Optionen in der Dokumentation nachlesen und sie mit festlegen /*jshint */ Konstruktionen. Grundsätzlich möchte ich nicht, dass die Titelseite von jshint.com mit unzähligen Optionen einschüchternd wirkt.

    – Anton Kowaljow

    15. November 2011 um 0:59 Uhr


  • Können Sie mir helfen, diese Option global festzulegen?stackoverflow.com/questions/9770968/passing-options-to-jshint

    – Reißer234

    19. März 2012 um 13:23 Uhr

Ich denke, das liegt daran, dass jshint versucht, uns vor einer versehentlichen Zuweisung des strikten Modus an die gesamte Datei zu “schützen”. Und es ist auch gut, Code mit anonymer Funktion zu umschließen oder eine Art Namespace zu verwenden.

zB funktionieren beide im strikten Modus:

(function() {

   "use strict";

   function foo() {
        .....
   }

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

JSlint erfordert, dass sich Ihr Code im „strikten Modus“ befindet

Dazu einfach hinzufügen "use strict"; an den Anfang Ihres Codes.

1158150cookie-checkJshint.com erfordert “use strict”. Was bedeutet das? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy