Heim > Web-Frontend > js-Tutorial > Hauptteil

Beispielerklärung für den strikten JS-Modus

小云云
Freigeben: 2018-03-01 09:07:52
Original
1319 Leute haben es durchsucht

Dieser Artikel organisiert hauptsächlich relevante Wissenspunkte und Codebeispiele im JS-strict-Modus. Wenn Sie interessiert sind, folgen Sie dem Editor, um gemeinsam zu lernen.

Der sogenannte Strict-Modus ist eigentlich eine Zeichenfolge „use strict“, die keiner Variablen zugewiesen wird

Wenn diese Eingabeaufforderung im globalen Bereich angegeben wird , dann befindet sich das gesamte Skript im strikten Modus. Sie können den strikten Modus auch nur in der Funktion

1 aktivieren. Im strikten Modus gibt es keine globalen Variablen

a="test"

Strikt Im Modus wird ein Fehler gemeldet, im nicht-strikten Modus jedoch normal

2. Variablen löschen

Var hat drei Deklarationssituationen

  • var Globale Variablen, deklariert in

  • var Lokale Variablen, deklariert in

  • Globale Variablen, deklariert in eval ()

Der erste und der zweite Fall können nicht mit Löschen gelöscht werden.

Erstens: Obwohl das im ersten Fall deklarierte globale Objekt ein Attribut von Windows ist, hat dieses Attribut configurable=false und kann daher nicht gelöscht werden

Der zweite Wenn es sich um lokale Variablen handelt, wissen Sie nicht einmal, wer das angehängte Objekt ist.

Der dritte Fall von eval() wird später besprochen.

Zurück zum Thema. Das heißt, im nicht strikten Modus können Sie Variablen löschen, dies schlägt jedoch fehl und gibt „false“ zurück.

Beim Löschen von Variablen im strikten Modus wird ein Fehler gemeldet.

3. Objekt

In den folgenden Situationen wird beim Bedienen des Objekts ein Fehler gemeldet

  1. Das Zuweisen eines Werts zu einem schreibgeschützten Attribut führt zu einem Fehler

  2. Die Verwendung von delete für nicht konfigurierbare Eigenschaften führt zu einem Fehler

  3. Das Hinzufügen von Eigenschaften zu nicht -Erweiterbare Objekte melden einen Fehler

  4. Bei der Verwendung von Objektliteralen müssen Eigenschaftsnamen eindeutig sein. Beispielsweise wird


var person={
  name:"1",
  name:"2"
}
Nach dem Login kopieren

im nicht-strikten Modus standardmäßig auf den zweiten Wert gesetzt, und im strikten Modus wird ein Fehler gemeldet.

4. Funktion

Der strenge Modus erfordert, dass Funktionsparameternamen eindeutig sein müssen


function(n,n){
  // todo
}
Nach dem Login kopieren

Im nicht strikten Modus meldet diese Funktionsdeklaration keinen Fehler. Nur auf den zweiten Parameter kann über den Parameternamen zugegriffen werden, und auf den ersten Parameter muss über Argumente zugegriffen werden.

Argumente unterscheiden sich auch in den beiden Modi

Im nicht-strikten Modus wird die Änderung des Werts des benannten Parameters im Argumentobjekt widergespiegelt , beide Die Werte sind unabhängig.

Argumente.callee (referenziert die Funktion selbst) und arguments.caller (referenziert die aufrufende Funktion) wurden entfernt.

Im strikten Modus können Funktionsnamen keine js-reservierten Wörter verwenden

** Im strikten Modus können Funktionen nur auf der obersten Ebene des Skripts und innerhalb des deklariert werden Funktion in der if-Anweisung. Die Deklaration einer Funktion führt zu einem Syntaxfehler. **


if(true){
  function(){
   // 严格模式下报错
}
}
Nach dem Login kopieren

5.this

Verwenden Sie apply() der Funktion im nicht-strikten Modus, rufen Sie auf () wird der übergebene Null- oder undefinierte Wert in ein globales Objekt konvertiert. Im strikten Modus ist das This einer Funktion immer der angegebene Wert, unabhängig davon, welcher Wert angegeben wird.


var a="1";
function test(){
 console.log(this.a)
}
test.call(null) 在非严格模式下会输出1,严格模式下this就指代的就是null,null没有a属性,就会报错。
Nach dem Login kopieren

Verwandte Empfehlungen:

Eine kurze Einführung in die Analysereihenfolge und den Umfang von JS und dem strengen Modus

Analyse des JS-Parsing-Reihenfolgebereichs im strengen Modus

Detaillierte Erläuterung dieses Zeigeproblems im strengen JavaScript-Modus


Das obige ist der detaillierte Inhalt vonBeispielerklärung für den strikten JS-Modus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage