Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Löschschritte des js-Löschvorgangs

Detaillierte Erläuterung der Löschschritte des js-Löschvorgangs

php是最好的语言
php是最好的语言Original
2018-08-10 09:24:162933Durchsuche

Einführung

wird verwendet, um die Attribute eines Objekts zu löschen.

Syntax

delete expresson
  • 1

  • 2

Express sollte ein Verweis auf ein Objekt sein, wie zum Beispiel

delete object.propertydelete object['property']
  • 1

  • 2

  • 3

  • 4

Wenn Ausdruck kein Verweis auf ein Objekt ist, hat Löschen keine Auswirkung

Rückgabewert

Wenn das Attribut im strikten Modus ein nicht konfigurierbares Attribut ist, wird beim Löschen eine Ausnahme ausgelöst. Im nicht strikten Modus wird false zurückgegeben , und in anderen Fällen wird true zurückgegeben.

Funktion

  1. Sie können implizite globale Variablen löschen, aber Sie können keine expliziten globalen Variablen löschen .
    Globale Variablen sind eigentlich Eigenschaften des globalen Objekts (Fensters).

x = 10;var y = 20;delete x; //true;delete y; //false
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  1. Die integrierten Eigenschaften integrierter Objekte können nicht gelöscht werden, und benutzerdefinierte Eigenschaften können gelöscht werden.

obj = {

    h : 10}var obj1 = {
    h: 10}delete Math.PI; // falsedelte obj.h; //truedelete obj; //ture ,obj 是全局变量的属性,而不是变量。delete obj1.h;//truedelete obj1; //false 全局显示变量不能被删除function fn(){

    var z = 10;    delete z; //false
    //z是局部变量,不能被删除,delete只能删除对象的属性。}delete fn; //false//fn 相当于是一个匿名变量,所以也不能被删除。
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  1. Ein Objekt kann nicht gelöscht werden aus Eigenschaften, die vom Prototyp geerbt wurden, aber Sie können sie direkt vom Prototyp löschen >2

3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • Array-Elemente löschen
  • Wenn Sie Array-Elemente löschen, wird die Länge des Arrays nicht kleiner.

  • function foo(){}
    foo.prototype.name = 'zhangsan';var f = new foo();//delete只能删除自己的属性,不能删除继承来的属性delete f.name; // false console.log(f.name);//zhangsandelete foo.prototype.anme; // trueconsole.log(f.name); // undefined
  • 1

2

3
  • 4
  • 5
  • 6
  • 7
  • Funktion: Das Löschen von Elementen in der forEach-Schleife hat keinen Einfluss auf das Schleifenergebnis
  • var arr = [1,3,4,6,73,2];delete arr[2];
    
    console.log(arr.length); // 6console.log(arr[2]); //undefiendconsoel.log(arr); //[ 1, 3, , 6, 73, 2 ]

  • 1

2

3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • Vergleiche mit Array.splice
  • var arr = [1,3,5,21,3,4,53,21,5,2];
    
    arr.forEach(function(val,index){
    
        if(val < 10){        delete arr[index];
        }
    })
    
    console.log(arr); //[ , , , 21, , , 53, 21, ,  ]//可以使用filter过滤掉空值 [ 21, 53, 21 ]arr = arr.filter(function(val){return val});

  • 1

2

3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • arr.forEach(function(val,index){
    
        if(val < 10){
    
            arr.splice(index,1);
        }
    })//没有答案我们预想的结果,因为splice删除元素会改变数组的长度。//所以说删除一个值后,其后的那个值占据了它的位置,在判断的时候就会漏掉。console.log(arr);// [ 3, 21, 4, 53, 21, 2 ]
  • Verwandte Empfehlungen :

  • Verwendung von Js zum Implementieren mehrerer Methoden zum Löschen eines oder mehrerer Elemente in einem Array
  • Einführung in JavaScript-Array-Methoden zum Löschen bestimmter Elemente

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Löschschritte des js-Löschvorgangs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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