javascript delete 使用示例代碼
更新時間:2010年03月29日 17:09:59 作者:
javascript delete的一些技巧,主要是從對象中刪除一個屬性,或從數(shù)組中刪除一個元素。具體的使用方法,可以參考下面的代碼。
javascript delete example
var flower={};
flower.name="oop";
delete flower.name; //true
alert(flower.name); //undefined
創(chuàng)建一個名為flower的對象
flower具有成員name,值"oop";
delete 操作 刪除這個成員
刪除成功,已不存在flower.name這個成員
javascript delete example 2
alert(isNaN(5)); //false
delete isNaN; //true
alert(isNaN(5)); //undefined
delete 操作符 甚至可以刪除全局對象Global的成員
不能刪除 var 申明的變量
var flower="monkey";
delete flower; //false
alert(flower); // "monkey"
用 var 申明的變量,delete 后 返回false.并沒有刪除成功 變量依然存在;
注意:delete僅在刪除一個不能刪除的成員是,才會返回false
ie下不能刪除宿主對象下的變量在ie瀏覽器下
window.flower="monkey";
delete flower; //拋出異常
alert(flower);
在ff瀏覽器下
window.flower="monkey";
delete flower; //true
alert(flower) //undefined
可以看到 delete window的成員時,瀏覽器表現(xiàn)不一致
window是javascript的宿主對象
宿主對象可以是javascript執(zhí)行環(huán)境自己定義的
在ie6-8瀏覽器中,不能delete window.flower,瀏覽器會提示你"對象不支持該操作",也就是不能刪除window下成員
不能刪除用函數(shù)名申明的函數(shù)
function flower(){}
delete flower; //true
alert(flower);//undefined
結果顯示 delete 不能刪除 用函數(shù)名申明的函數(shù)
不能刪除繼承自原型的成員
function flower(){};
flower.prototype.name="monkey";
var a1=new flower();
a1.name="a1_monkey"
alert(a1.name);//"a1_monkey"
delete a1.name;//ture
alert(a1.name);//"monkey"
a1是flower的實例,通過實例來刪除原型的和父類的成員是不可行的~
如果一定要刪除該屬性("這里以name為例"),只能對原型進行操縱
delete a1.constructor.prototype.name;
DontDelete 特性delete 不能刪除具有DontDelete特性的成員
那什么是具有DontDelete特性的成員呢
例如var 申明的變量,函數(shù)名申明的函數(shù),Function對象的length等極少數(shù)幾個擁有DontDelete特性
delete 返回值false or true
delete 僅在刪除一個不能刪除的成員時,才會返回false
而其他情況下,刪除如不存在的成員,或刪除成功也都會返回ture
也就是說 返回true 并不一定代表刪除成功
如 : 執(zhí)行代碼 alert(delete a); // true
a是一個未申明且不存在的變量。 delete 依然返回的是true
不同瀏覽器器之間的差異
(function(){
delete arguments; // false ,而在Mozilla中返回的是true
typeof arguments; // "object"
})();
巧妙的利用eval刪除var 申明的變量
eval('var flower = 1');
alert(window.flower) //1
alert(flower)// 1
delete flower; // true
alert(flower); // "undefined"
var a=function(){};
eval('var a = function(){}');
delete a; // true
alert(a); // "undefined"
eval后的全局變量,變得不具備DontDelete特性,可以用eval刪除;
最后補充一條神奇的~睡覺前剛測試
window.flower=1;
delete flower 時對象會不支持此操作
我們可以用 with(window){flower=1}; 然后 delete flower (記住是delete flower,不是delete window.flower ,ie不允許那么做)
這樣 window.flower就被刪除了 :)
JavaScript delete操作符應用實例
復制代碼 代碼如下:
var flower={};
flower.name="oop";
delete flower.name; //true
alert(flower.name); //undefined
創(chuàng)建一個名為flower的對象
flower具有成員name,值"oop";
delete 操作 刪除這個成員
刪除成功,已不存在flower.name這個成員
javascript delete example 2
復制代碼 代碼如下:
alert(isNaN(5)); //false
delete isNaN; //true
alert(isNaN(5)); //undefined
delete 操作符 甚至可以刪除全局對象Global的成員
不能刪除 var 申明的變量
復制代碼 代碼如下:
var flower="monkey";
delete flower; //false
alert(flower); // "monkey"
用 var 申明的變量,delete 后 返回false.并沒有刪除成功 變量依然存在;
注意:delete僅在刪除一個不能刪除的成員是,才會返回false
ie下不能刪除宿主對象下的變量在ie瀏覽器下
復制代碼 代碼如下:
window.flower="monkey";
delete flower; //拋出異常
alert(flower);
在ff瀏覽器下
復制代碼 代碼如下:
window.flower="monkey";
delete flower; //true
alert(flower) //undefined
可以看到 delete window的成員時,瀏覽器表現(xiàn)不一致
window是javascript的宿主對象
宿主對象可以是javascript執(zhí)行環(huán)境自己定義的
在ie6-8瀏覽器中,不能delete window.flower,瀏覽器會提示你"對象不支持該操作",也就是不能刪除window下成員
不能刪除用函數(shù)名申明的函數(shù)
復制代碼 代碼如下:
function flower(){}
delete flower; //true
alert(flower);//undefined
結果顯示 delete 不能刪除 用函數(shù)名申明的函數(shù)
不能刪除繼承自原型的成員
復制代碼 代碼如下:
function flower(){};
flower.prototype.name="monkey";
var a1=new flower();
a1.name="a1_monkey"
alert(a1.name);//"a1_monkey"
delete a1.name;//ture
alert(a1.name);//"monkey"
a1是flower的實例,通過實例來刪除原型的和父類的成員是不可行的~
如果一定要刪除該屬性("這里以name為例"),只能對原型進行操縱
delete a1.constructor.prototype.name;
DontDelete 特性delete 不能刪除具有DontDelete特性的成員
那什么是具有DontDelete特性的成員呢
例如var 申明的變量,函數(shù)名申明的函數(shù),Function對象的length等極少數(shù)幾個擁有DontDelete特性
delete 返回值false or true
delete 僅在刪除一個不能刪除的成員時,才會返回false
而其他情況下,刪除如不存在的成員,或刪除成功也都會返回ture
也就是說 返回true 并不一定代表刪除成功
如 : 執(zhí)行代碼 alert(delete a); // true
a是一個未申明且不存在的變量。 delete 依然返回的是true
不同瀏覽器器之間的差異
復制代碼 代碼如下:
(function(){
delete arguments; // false ,而在Mozilla中返回的是true
typeof arguments; // "object"
})();
巧妙的利用eval刪除var 申明的變量
復制代碼 代碼如下:
eval('var flower = 1');
alert(window.flower) //1
alert(flower)// 1
delete flower; // true
alert(flower); // "undefined"
var a=function(){};
eval('var a = function(){}');
delete a; // true
alert(a); // "undefined"
eval后的全局變量,變得不具備DontDelete特性,可以用eval刪除;
最后補充一條神奇的~睡覺前剛測試
window.flower=1;
delete flower 時對象會不支持此操作
我們可以用 with(window){flower=1}; 然后 delete flower (記住是delete flower,不是delete window.flower ,ie不允許那么做)
這樣 window.flower就被刪除了 :)
JavaScript delete操作符應用實例
您可能感興趣的文章:
- JavaScript中詭異的delete操作符
- js delete 用法(刪除對象屬性及變量)
- Javascript中的delete介紹
- JavaScript delete 屬性的使用
- JavaScript從數(shù)組中刪除指定值元素的方法
- Javascript根據指定下標或對象刪除數(shù)組元素
- js 刪除數(shù)組的幾種方法小結
- js刪除數(shù)組元素、清空數(shù)組的簡單方法(必看)
- js刪除Array數(shù)組中指定元素的兩種方法
- 基于JavaScript實現(xiàn)移除(刪除)數(shù)組中指定元素
- Javascript remove 自定義數(shù)組刪除方法
- javascript中刪除指定數(shù)組中指定的元素的代碼
- JavaScript使用delete刪除數(shù)組元素用法示例【數(shù)組長度不變】
相關文章
JavaScript中isPrototypeOf、instanceof和hasOwnProperty函數(shù)的用法詳解
本文詳細講解了JavaScript中isPrototypeOf、instanceof和hasOwnProperty函數(shù)的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06判斷js中各種數(shù)據的類型方法之typeof與0bject.prototype.toString講解
提醒大家,Object.prototype.toString().call(param)返回的[object class]中class首字母是大寫,像JSON這種甚至都是大寫,所以,大家判斷的時候可以都轉換成小寫,以防出錯2013-11-11淺談javascript中onbeforeunload與onunload事件
javascript中onbeforeunload與onunload事件就是頁面加載前與頁面關閉時的兩個功能的函數(shù),可以防止頁面刷新時給提示再刷新或頁面關閉時給出提示,下面我來介紹onbeforeunload與onunload事件用法。2015-12-12JavaScript中用于四舍五入的Math.round()方法講解
這篇文章主要介紹了JavaScript中用于四舍五入的Math.round()方法講解,是JS入門學習中的基礎知識,需要的朋友可以參考下2015-06-06javascript彈出窗口 window.open使用方法以及參數(shù)說明分析篇
window.open是網頁中經常遇到的彈出窗口代碼,不是網絡中比較反感的那類彈出代碼。用于新頁面?zhèn)髦?,回傳等?/div> 2009-12-12最新評論