javascript中的删除方法

时间:2023-08-13 20:06:38

可能呢再开发的过程中呢使用的不是很多,但是碰上呢可以注意下

1.比如:

  var x = 10;

  delete x;

  console.log(x);

结果是多少,是10,不是异常也不是undefined;

再看:

  var person = {

    name : "pipi"

  }

  delete person.name;

  console.log(person.name);//undefined

由此可以看出:在javascript中delete方法是删除对象的属性而不能删除变量的

2.顺便看看数组中的删除

  var arr = [1,2,3,4,5];

  delete arr[0];  //

  console.log(arr.toString());   //[,2,3,4,5];

  console.log(arr.length);  //5

  结果会把下标为0 的数字删除掉,而不会减少数组的长度,还会默认占据着

如果要完全删除呢?

var arr = [1,2,3,4,5];

arr.shift(); //这个是从前面开始删除的方法,返回删除的值,长度也会发生变化

console.log(arr.toString()); 2,3,4,5

console.log(arr.length); //4

//====================

arr.pop(); //这个是从后面面开始删除的方法,返回删除的值,长度也会发生变化

console.log(arr.toString()); 2,3,4

console.log(arr.length); //3

3.如果需要删除一个变量或者说一个对象,直接赋值为null

4.引用一句话,来自《你不知道的javascript》

delete只用来删除对象的(可删除)属性,如果对象的某个属性是某个对象/函数

的最后一个引用者,对这个属性执行delete操作之后,这个未引用的对象/函数就可以被垃圾回收。

但是,不要把delete看作一个释放内存的工具(就行C/C++中那样),它就是一个删除对象属性的操作,

仅此而已。