Heim > Artikel > Web-Frontend > So verwenden Sie den strikten JS-Modus in Ihrem Projekt
Dieses Mal zeige ich Ihnen, wie Sie den strikten JS-Modus in Projekten verwenden. Was sind die Vorsichtsmaßnahmen für die Verwendung des strikten JS-Modus in Projekten?
Was ist der strikte Modus?
Ein Modus, der die JS-Codierung standardisierter macht und einige unangemesseneJavascript-Syntax eliminiert. Lose Teile, reduzieren Sie einige seltsame Verhaltensweisen
Wie benutzt man?
Fügen Sie einfach die folgende Zeichenfolge hinzu. Diese Syntax ist abwärtskompatibel ist eine JavaScript-Engine, die den strikten Modus nicht unterstützt. Sie wird direkt als nicht zugewiesenes Zeichenfolgenliteral betrachtet und direkt ignoriert. Unterstützte Engines aktivieren den strikten Modus'use strict'
function doSomething(){ 'use strict' // 其他代码 }
Variable
1. Wann und wie man Variablen im strikten Modus erstellt. Zunächst gibt es Einschränkungen bei der versehentlichen Erstellung globaler Variablen ist nicht zulässig. Im nicht-strikten Modus können Sie globale Variablen wie folgt erstellen, im strikten Modus ist dies jedoch nicht möglich// Nicht deklarierte Variablen2 Im strikten Modus gibt es auch Einschränkungen für Variablennamen, Sie können keine reservierten Wörter wie „implementiert“, „schnittstelle“ und „let“ verwenden , Paket, privat usw. als Variablennamen. Wenn Sie diese Variablen benennen, werden// Nicht-strikter Modus: erstellen globale Variablen
// Strikter Modus: throw referenceError error
Objekte exportiert
Das Betreiben von Objekten im strikten Modus führt eher zu Fehlern als im nicht strikten Modus. Die folgenden Situationen führen zu Syntaxfehlern1. Das Zuweisen eines Werts zu einem schreibgeschützten Attribut führt zu TypeError2. Die Verwendung des Löschoperators für nicht konfigurierbare Eigenschaften löst TypeError aus3. Das Hinzufügen von Eigenschaften zu nicht erweiterbaren Objekten löst TypeError ausFunktion
Im strikten Modus ist es erforderlich, dass die Parameter der benanntenFunktion eindeutig sein müssen
// 重命名参数的 // 非严格模式:没有错误,只能访问第二个参数,如果要访问第一个参数,就必须通过arguments // 严格模式语法错误 function sum(num,num){ //do something }Argumentobjekt im strikten Modus Das Verhalten ist auch Anders. Im strikten Modus wird die Änderung des Werts des benannten Parameters auch im Argumentobjekt widergespiegelt, aber im strikten Modus sind diese beiden Werte völlig unabhängig
function showValue(value){ value = 'foo' console.log(value) console.log(arguments[0]) // 非严格模式 : 'foo' 严格模式 :'hello' } showValu('hello')
Funktion
Im strengen Modus müssen die Parameter der Funktion eindeutig sein// 重名的参数 // 非严格模式中,没有错误,只能访问第一个参数 // 严格模式 :抛出错误 Uncaught SyntaxError: Duplicate parameter name not allowed in this context function sum(num,num){ 'use strict' // do something }
Argumente Objekt
In Im nicht strikten Modus wird die Änderung des Werts des benannten Parameters auch im Argumentobjekt widergespiegelt, während im strikten Modus die beiden Werte völlig unabhängig sind// 修改命名参数的值 // 非严格模式:修改会反应到arguments中 // 严格模式中不会反应到arguments中 function sum(num,num2){ 'use strict' num=3 console.log(arguments[0],num2)// 严格模式下输出为1,2 非严格模式下输出为3,2 } sum(1,2)
eval ()
Die größte Änderung der Auswertungsfunktion besteht darin, dass sie keine Variablen oder Funktionen mehr im enthaltenden Kontext erstellt:// 使用eval函数创建变量 // 非严格模式中:弹出框弹窗 20 // 严格模式中:调用alert(x)时报错 function doSomething(){ eval('var x=20') alert(x) }Im strikten Modus können Variablen und Funktionen dies tun in eval() deklariert werden, aber diese Nebenzeilen oder Funktionen können nur in dem speziellen Bereich gültig sein, der ausgewertet wird, und werden dann zerstört. Es gibt kein Problem bei der Ausführung des folgenden Codes
'use strict' var result=eval('x=1,y=13;x+y') alert(result)Hier die Variablen werden in eval x und y deklariert und dann addiert, wodurch ihre Summe gelöscht wird, sodass der Wert der Ergebnisvariablen 21 ist, was das Ergebnis von x+y ist, wenn die Warnung aufgerufen wird, obwohl x und y nicht mehr existieren , der Wert der Ergebnisvariablen. Es ist immer noch gültig
, um dies zu unterdrücken
Im nicht-strikten Modus verwenden Sie die Funktion werden Null- und undefinierte Werte in globale Objekte konvertiert. Im strikten Modus ist dieser Wert der Funktion immer der angegebene Wert, unabhängig davon, welcher Wert angegeben ist: // 访问属性
// 非严格模式:访问全局实行
// 严格模式:抛出错误,因为this的值是null
var color = "red";
function displayColor() {
alert(this.color);
}
displayColor(null);
Weitere Änderungen 在严格模式中with语句被抛弃掉了,在非严格模式中with语句能够改变解析标识符的路径,但在严格模式下,with语句被简化掉了,因此,在严格模式下使用with语句是导致语法错误 相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章! 推荐阅读// with语句
// 非严格模式:允许
// 严格模式:抛出语法错误
with (location) {
console.log(href);
}
Das obige ist der detaillierte Inhalt vonSo verwenden Sie den strikten JS-Modus in Ihrem Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!