第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問,JavaScript能否刪除var聲明的變量

請問,JavaScript能否刪除var聲明的變量

慕運(yùn)維8079593 2019-07-08 13:04:24
查看完整描述

3 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個贊

你在控制臺中出現(xiàn)的結(jié)果屬于特殊情況。。。。下面將給你解惑

var有三種聲明的情形:

  1.     var聲明的全局變量

  2.     var在函數(shù)范圍內(nèi)聲明的局部變量

  3.     eval中聲明的全局變量。

你的情況屬于第3種,在firebug和chrome的控制臺中輸入的代碼最終是用eval的方式執(zhí)行的。


首先,1、2種情形var聲明的變量是無法刪除的。盡管var聲明的全局變量是屬于window對象的屬性(在瀏覽器中),但依然是無法刪除的,因?yàn)檫@種屬性的configurable=false,因此不能delete掉。局部變量就更不用說了,連var變量依附的對象都不知道在哪里,肯定無法刪除。而eval('var a = 1')看似和直接var是一樣的效果(當(dāng)然是在全局作用執(zhí)行eval),執(zhí)行完也會在window對象上創(chuàng)建一個a屬性,但是這個屬性的configurable=true,因此可以刪除。

給你一段代碼自己試驗(yàn),看看各個屬性的描述是什么。

<script type="text/javascript">

var a = 1;

console.log(Object.getOwnPropertyDescriptor(window, 'a'));

with ({}) {

var b = 1;

console.log(Object.getOwnPropertyDescriptor(window, 'b'));

console.log(delete b);

}

eval('var c = 1');

console.log(Object.getOwnPropertyDescriptor(window, 'c'));

</script>



查看完整回答
反對 回復(fù) 2019-07-09
?
動漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個贊

可以刪除的

如你截圖所示 delete x; 結(jié)果為 true , 標(biāo)明已被刪除 

你再輸入 x 回車后 將會提示  x is not defined 




查看完整回答
反對 回復(fù) 2019-07-09
?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個贊

不能。。
你重新給其賦值 undefined
或重新聲明

var a = 0;
var a;
var a = 0 ;
a = undefined;

查看完整回答
反對 回復(fù) 2019-07-09
  • 3 回答
  • 0 關(guān)注
  • 667 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號