Dieser Artikel stellt hauptsächlich die Implementierung von js zum Löschen eines Felds in einem Objekt vor und teilt sie wie folgt mit Ihnen: // Die folgende Methode ändert das Originalobjekt nicht let item = { Name: 'Zhang San', Alter:'18', Geschlecht: männlich }; console.log(item) // {Alter: "18",Geschlecht: "männlich",Name: "Zhang San"} let { Alter, ... Params } = Artikel; console.log(item) // {Alter: "18",Geschlecht: "männlich",Name: "Zhang San"} console.log(Typ von Parametern.Alter) // undefiniert console.log(params) // {gender: "Generikum",name: "Geschlecht"} // Die folgenden Methoden ändern das Objekt direkt let item1 = { Name: 'Zhang San', Alter:'18', Geschlecht: männlich }; console.log(item1) // {Alter: "18",Geschlecht: "männlich",Name: "Zhang San"} lösche item1.name; console.log(Typ von item1.name) // undefiniert console.log(item1) // // {Alter: "18",Geschlecht: "männlich"} Entgegen der landläufigen Meinung hat der Löschoperator nichts mit der direkten Freigabe von Speicher zu tun. Die Speicherverwaltung erfolgt indirekt durch das Unterbrechen von Referenzen. Weitere Informationen finden Sie auf der Seite „Speicherverwaltung“. Der Löschoperator entfernt die angegebene Eigenschaft aus einem Objekt. Wenn das Löschen erfolgreich ist, wird „true“ zurückgegeben, andernfalls „false“. In den folgenden Situationen müssen jedoch wichtige Überlegungen angestellt werden: Wenn die Eigenschaft, die Sie löschen möchten, nicht vorhanden ist, hat „delete“ keine Auswirkung, gibt aber dennoch „true“ zurück. Der folgende Codeblock gibt ein einfaches Beispiel: var Mitarbeiter = { Alter: 28, Name: 'abc', Bezeichnung: "Entwickler" } console.log(delete Employee.name); // gibt true zurück console.log(delete Employee.age); // gibt true zurück // Beim Versuch ein nicht vorhandenes Attribut zu löschen // Dies gibt ebenfalls true zurück console.log(delete Employee.salary); // gibt true zurück Nicht konfigurierbare Eigenschaften Wenn für eine Eigenschaft festgelegt ist, dass sie nicht festgelegt werden kann, hat der Löschvorgang keine Auswirkung und gibt „false“ zurück. Im strikten Modus wird ein SyntaxError ausgelöst. var Mitarbeiter = {}; Object.defineProperty(Mitarbeiter, 'Name', {konfigurierbar: false}); console.log(delete Employee.name); // gibt false zurück Nicht einstellbare Eigenschaften, die durch var, let und const erstellt wurden, können durch den Löschvorgang nicht gelöscht werden. var nameOther = "XYZ"; // Globale Eigenschaften erhalten Sie über die folgenden Methoden: Object.getOwnPropertyDescriptor(Fenster, 'NameOther'); // Ausgabe: Objekt {Wert: "XYZ", // beschreibbar: true, // aufzählbar: wahr, // konfigurierbar: false} // Da "nameOther" mit dem Schlüsselwort var hinzugefügt wird, // Es ist auf nicht konfigurierbar eingestellt nameOther löschen; // false zurückgeben Im strengen Modus löst ein solcher Vorgang eine Ausnahme aus. Strenger Modus vs. nicht strenger Modus Wenn im strikten Modus die Löschoperation auf einen direkten Verweis auf eine Variable, einen Funktionsparameter oder einen Funktionsnamen angewendet wird, wird ein Syntaxfehler (SyntaxError) ausgelöst. Um Syntaxfehler im strikten Modus zu vermeiden, müssen Sie daher den Löschoperator in der Form „Lösche Objekt.Eigenschaft“ oder „Lösche Objekt[,,Eigenschaft‘]“ verwenden. Object.defineProperty(globalThis, 'variable1', { Wert: 10, konfigurierbar: true, }); Object.defineProperty(globalThis, 'variable2', { Wert: 10, konfigurierbar: false, }); console.log(Variable1 löschen); // wahr // Syntaxfehler im strikten Modus. console.log(variable2 löschen); // falsch Funktion func(param) { // Syntaxfehler im strikten Modus. console.log(Parameter löschen); // falsch } // Syntaxfehler im strikten Modus. console.log(Löschfunktion); // falsch Jede mit var deklarierte Variable wird als nicht einstellbar markiert. Im folgenden Beispiel ist das Gehalt nicht einstellbar und kann nicht gelöscht werden. Im nicht strengen Modus gibt der folgende Löschvorgang „false“ zurück. Funktion Mitarbeiter() { Gehalt streichen; var Gehalt; } Mitarbeiter(); Sehen wir uns an, wie sich derselbe Code im strengen Modus verhält. Wirft einen SyntaxError, anstatt „false“ zurückzugeben. Funktion Mitarbeiter() { Gehalt löschen; // SyntaxError var Gehalt; } // Ebenso führt jede direkte Verwendung des Löschoperators auf eine beliebige Funktion // zu einem Syntaxfehler. Funktion DemoFunktion() { //etwas Code } Demofunktion löschen; // Syntaxfehler Beispiel// Attribut „adminName“ im globalen Bereich erstellen adminName = „xyz“; // Erstellen Sie die Eigenschaft „empCount“ im globalen Bereich. // Da wir var verwendet haben, wird es als nicht konfigurierbar markiert. Ebenso sind let oder const nicht konfigurierbar. var empCount = 43; Mitarbeiterdetails = { Name: "xyz", Alter: 5, Bezeichnung: 'Entwickler' }; // adminName ist eine Eigenschaft mit globalem Gültigkeitsbereich. // Da es nicht mit var erstellt wurde, kann es gelöscht werden. // Daher ist es konfigurierbar. adminName löschen; // gibt true zurück // Im Gegensatz dazu ist empCount nicht konfigurierbar. // weil beim Erstellen var verwendet wurde. empCount löschen; // gibt false zurück // Mit delete können die Attribute eines Objekts gelöscht werden delete EmployeeDetails.name; // gibt true zurück // Auch wenn die Eigenschaft nicht existiert, wird „true“ zurückgegeben. lösche EmployeeDetails.salary; // gibt true zurück // Löschen hat keine Auswirkung auf integrierte statische Eigenschaften delete Math.PI; // gibt false zurück // EmployeeDetails ist eine Eigenschaft mit globalem Gültigkeitsbereich. // Da es ohne „var“ definiert ist, wird es als konfigurierbar markiert. EmployeeDetails löschen; // gibt true zurück Funktion f() { var z = 44; // Löschen hat keine Auswirkung auf lokale Variablennamen. Löschen z; // gibt „false“ zurück. } Löschen und Prototypkette Im folgenden Beispiel löschen wir die eigene Eigenschaft eines Objekts, während eine gleichnamige Eigenschaft in der Prototypenkette vorhanden ist: Funktion Foo() { diese.bar = 10; } Foo.prototype.bar = 42; var foo = neues Foo(); // Gibt „true“ zurück, da die gelöschte Eigenschaft die eigene Eigenschaft des Foo-Objekts ist. delete foo.bar; // foo.bar ist weiterhin verfügbar, da es in der Prototypenkette verfügbar ist. konsole.log(foo.bar); //42 // Lösche die Eigenschaft aus dem Prototyp delete Foo.prototype.bar; //true // Da die Eigenschaft „bar“ entfernt wurde, kann sie nicht mehr von Foo geerbt werden. console.log(foo.bar); //undefiniert Löschen eines Array-Elements Wenn Sie ein Array-Element löschen, wird die Länge des Arrays nicht beeinflusst. Dies gilt auch, wenn Sie das letzte Element des Arrays löschen. Wenn ein Array-Element mit dem Löschoperator gelöscht wird, gehört das gelöschte Element nicht mehr zum Array. Im folgenden Beispiel wird delete zum Löschen von Bäumen verwendet[3]. var Bäume = ["Redwood", "Lorbeer", "Zeder", "Eiche", "Ahorn"]; Bäume löschen[3]; wenn (3 in Bäumen) { // Dies wird nicht ausgeführt} Wenn ein Array-Element weiterhin vorhanden sein soll, aber den Wert „undefined“ hat, können Sie dem Element „undefined“ zuweisen, statt „delete“ zu verwenden. Im folgenden Beispiel wird trees[3] der Wert undefined zugewiesen, das Element existiert aber weiterhin. var Bäume = ["Redwood", "Lorbeer", "Zeder", "Eiche", "Ahorn"]; Bäume[3] = undefiniert; wenn (3 in Bäumen) { // Dies wird ausgeführt} Wenn Sie ein Array-Element entfernen möchten, indem Sie den Inhalt des Arrays ändern, verwenden Sie die Methode splice(). Im folgenden Beispiel wird trees[3] mithilfe von splice() aus dem Array entfernt. var Bäume = ['Redwood', 'Lorbeer', 'Zeder', 'Eiche', 'Ahorn']; Bäume.spleißen(3,1); console.log(Bäume); // ["Redwood", "Lorbeer", "Zeder", "Ahorn"] Dies ist das Ende dieses Artikels zum Löschen eines Felds in einem Objekt mit js. Weitere Informationen zum Löschen eines Felds in einem Objekt mit js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: jQuery realisiert die volle Funktion des Einkaufswagens
>>: Zusammenfassung von 11 erstaunlichen Best Practices für die Refaktorierung von JavaScript-Code
Vue+js realisiert das Ein- und Ausblenden des Vid...
Inhaltsverzeichnis Vorwort Überprüfen und deinsta...
Unicode-Signatur-BOM – Was ist die BOM? BOM ist di...
Bei täglichen Entwicklungsaufgaben verwenden wir ...
Schritt 1: Überprüfen Sie die lokalen Ethernet-Ei...
Inhaltsverzeichnis Umsetzungsideen Es gibt drei M...
Quelle des Problems: Wenn der Slave-Server der ge...
Da ich dieses Plugin beim Schreiben einer Demo ve...
Code kopieren Der Code lautet wie folgt: <!DOC...
Viele fragen sich vielleicht: Muss der Text auf d...
Inhaltsverzeichnis Vorwort analysieren Erste Rend...
Standardmäßig werden Breite und Höhe der Tabelle ...
Navicat meldet beim Verbinden mit der Datenbank d...
Ich habe eine Produktteiletabelle wie diese: Teil...