javascript delete方法

學習delete能夠參考下面兩個博客,寫的都很好,本文大部分參考與如下兩個博客javascript

http://www.cnblogs.com/windows7/archive/2010/03/28/1698387.htmlhtml

http://my.oschina.net/warmcafe/blog/75845java

 

1、javascript delete的做用windows

delete方法用於刪除對象的指定元素(包括變量和函數)瀏覽器

一、新建一個變量flower,並新添一個屬性變量name,而後delete該屬性函數

var flower={};
flower.name="oop";
delete flower.name; //true
alert(flower.name);  //undefined 

二、在當前window變量中新添一個屬性aaa和函數bbb,而後deleteoop

aaa=1;
alert(delete aaa);  // true   等同於delete window.aaa
alert(typeof aaa);  // "undefined"   等同於typeof window.aaa

bbb=function(){};
alert(delete bbb);  // true   等同於delete window.bbb
alert(typeof bbb);  // "undefined"   等同於typeof window.bbb

 

2、javascript delete一些特性學習

一、不能刪除具備DontDelete特性的元素,那什麼是具備DontDelete特性的成員呢spa

例如var申明的變量函數名申明的函數,對象的內置參數,函數的參數等;.net

1)var申明的變量

var x = 1;
alert(delete x); // false
alert(typeof x); // number

2)函數

function x(){}
alert(delete x); // false
alert(typeof x); // "function"

3)對象的內置參數(例如function的length屬性,arguments屬性)

 function f(){
        alert(delete arguments); // false
        alert(typeof arguments); // "object"

        alert(delete f.length); // false
        alert(typeof f.length); // "number"
 }
f();

4)函數的參數

 function f(param1){
     alert(delete param1); // false
     alert(typeof param1); // "number"
    }
 f(12);

 

二、能夠刪除eval中申明的元素

 eval('var x = 1');
 alert(delete x);  //true
 alert(typeof x); //undefined

 eval('function f(){}');
 alert(delete f);  //true
 alert(typeof f);  //undefined

 

3、delete 返回值false or true
delete 僅在刪除一個不能刪除的成員時,纔會返回false
而其餘狀況下,刪除如不存在的成員,或刪除成功也都會返回ture
也就是說 返回true 並不必定表明刪除成功

alert(delete a); // true 
//a是一個未申明且不存在的變量。 delete 依然返回的是true 

 

4、不一樣瀏覽器之間的差別

在ie瀏覽器下
window.flower="monkey";
delete flower; //拋出異常
alert(flower);

在ff瀏覽器下
window.flower="monkey";
delete flower; //true
alert(flower) //undefined 

補充:在ie下可使用以下方式

with(window){flower=1}; 而後 delete flower (記住是delete flower,不是delete window.flower ,ie不容許那麼作)
相關文章
相關標籤/搜索