-
delete關(guān)鍵字的作用:
- 刪除對(duì)象的屬性 語(yǔ)法:delete 對(duì)象.屬性
- 可以刪除沒有使用var關(guān)鍵字聲明的全局變量(直接定義在window上面的屬性)
-
delete關(guān)鍵字的使用注意:
- 返回值類型為布爾值(true / false),刪除成功返回true
- 刪除對(duì)象中不存在的屬性,返回值是true
- 刪除對(duì)象的原型對(duì)象中的屬性(不能刪除),返回值是true
- 無(wú)法刪除使用var聲明的全局的變量,但是卻可以刪除直接定義在window上面的屬性
示例:
<script>
var dog = {
name:"招財(cái)",
age:14
}
//刪除對(duì)象的屬性
console.log(delete dog.name); //true
console.log(dog.name); //undefined
// 刪除對(duì)象中不存在的屬性
console.log(delete dog.eat); //true
// 刪除對(duì)象的原型對(duì)象中的屬性
Object.prototype.play = "玩";
console.log(delete Object.prototype.play ); //true
//沒有使用var關(guān)鍵字聲明的變量,那么該變量默認(rèn)會(huì)成為一個(gè)全局的變量(變成window的屬性)
b = "testb";
console.log(b); // testb
function func() {
var num1 = 10;
num2 = 20;
}
func();
//console.log(num1); // 報(bào)錯(cuò) 無(wú)法在函數(shù)體外部訪問(wèn)局部變量
console.log(num2); //20 num2 變成了window的屬性
//使用delete刪除直接定義在window上面的屬性
console.log(delete num2); // true
//console.log(num2); // 報(bào)錯(cuò)
var a = "testa";
delete a; // 無(wú)法刪除
console.log(a); // testa
// 刪除對(duì)象中不存在的屬性
</script>