Funktionen auf BlockebeneDer strikte Modus sollte vor ES6 verboten werden. Verfügbar seit ES6. Der Gültigkeitsbereich einer Funktion ist der Block, in dem sie deklariert ist. Dies sollte im nicht strengen Modus deaktiviert werden. wenn(wahr) { function test() { //Funktion auf Blockebene console.log(1); } } prüfen(); Ändern Sie direkt den Prototyp des ObjektsDer Browser optimiert den Prototyp und plant den Speicherplatz für die Methode des Objekts bereits vor dem Aufruf der Instanz. Daher kann der Prototyp nicht direkt verändert werden. Die folgenden zwei Methoden sollten verboten werden Verwenden Sie Object.setPrototypeOf, um den Prototyp zu ändern Funktion a(){} a.prototyp = { a_prop: "ein Wert" }; Funktion b(){} var proto = { b_prop: "b-Wert" }; Objekt.setPrototypeOf( proto, ein Prototyp ); b.prototype = proto; var test = neues b; console.log(test.a_prop); // ein Wert console.log(test.b_prop); // b Wert Ändern Sie direkt das __proto__-Attribut des Objekts Funktion a(){} a.prototyp = { a_prop: "ein Wert" }; Funktion b(){} var proto = { b_prop: "b-Wert", __proto__: a.prototype //ändere direkt das __prototype__-Attribut von Objekt b}; b.prototype = proto; var test = neues b; console.log(test.a_prop); // ein Wert console.log(test.b_prop); // b Wert mitVerwendung von mit: var a = { p1: 1, Seite 2: 2 } mit (a) { p1 = 3; } Konsole.log(a.p1); Die Verwendung von „mit“ sollte verboten werden, zum Beispiel: Funktion a(arg1, arg2) { mit (arg2){ console.log(arg1); // Kann nicht bestimmen, ob der erste Parameter oder die arg1-Eigenschaft von arg2 ausgegeben werden soll} } var arg2 = {arg1:1} a("arg1", arg2) Angerufenerarguments.callee stellt die aktuell ausgeführte Funktion dar: Funktion a(arg1) { wenn (arg1 > 1) { returniere arg1 * Argumente.callee(arg1 - 1); } anders { Rückgabe 1; } } konsole.log(a(3)); // 6 Wenn eine Funktion sich selbst aufrufen muss, verwenden Sie stattdessen arguments.callee() und rufen Sie die Funktion direkt mit ihrem Namen auf. Funktion a(arg1) { wenn (arg1 > 1) { return arg1 * a(arg1 - 1); // Direkter Aufruf über den Funktionsnamen} anders { Rückgabe 1; } } konsole.log(a(3)); // 6 Anrufercaller stellt den Aufrufer der Funktion dar und sollte nicht verwendet werden. Diese Funktion ist nicht Standard. Funktion a() { console.log(a.caller); // Funktion b() { a(); } } Funktion b() { A(); } B(); Auswertungeval() kann den übergebenen String-Parameter als JavaScript-Code ausführen. eval("var a = 1, b = 2; console.log(a+b)"); // 3 Die Verwendung von eval ist verboten. Eval ist langsamer als die normale JavaScript-Ausführung, da Browser JavaScript optimieren. Die eval-Methode ist außerdem unsicher, da sie Code mit denselben Berechtigungen wie der Anrufer ausführt und ihr Gültigkeitsbereich beim Aufruf von eval() offengelegt wird. Stattdessen sollte die Funktion verwendet werden: var a = neue Funktion("a", "b", "console.log(a+b)") ein(1,2); // 3 Oben finden Sie detaillierte Informationen zu Schreibmethoden, die in nativem JS verboten werden sollten. Weitere Informationen zu Schreibmethoden, die in nativem JS verboten werden sollten, finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: So beheben Sie den MySQL-FEHLER 1045 (28000) - Zugriff wegen Benutzer verweigert
Anwendungsszenario In vielen Fällen installieren ...
MySQL 8.0.19 unterstützt die Sperrung des Kontos ...
Super ausführliches Tutorial zur Installation und...
Genau wie dieser Effekt ist auch die Methode sehr...
Inhaltsverzeichnis Über Kubernetes Grundlegende U...
Inhaltsverzeichnis 0x0 Einführung 0x1 RBAC-Implem...
bgcolor="Textfarbe" background="Hin...
[Wenn ich mir all die Migrationsdateien im Intern...
Inhaltsverzeichnis 1. Einleitung 2. GitHub 3. Gru...
1. Das in diesem Artikel implementierte Effektdia...
Der Syntaxstil der CSS-Stilregel ist die Grundein...
Ich hatte dieses Problem in letzter Zeit beim Desi...
Als ich die Bücher über Redis und Spring Cloud Al...
Problembeschreibung Der Schaltflächenstil ist Sym...
Linux verwendet iftop, um den Verkehr der Netzwer...