亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

老師在屬性刪除那一段delete ohno之后講的是什么聽不懂

delete ohno之后講的是什么,用var定義可以刪除,是哪種情況

正在回答

5 回答

自己動手試一試,通常情況下,使用var去聲明的變量,不能被delete,例如:

var abc = 100;

delete abc; // 返回true

abc; // 還是100


但是在eval代碼里,就會不同,:

eval("var abc = 100;console.log(delete abc); console.log(abc);"); // 返回true, undefined

2 回復 有任何疑惑可以回復我~
#1

菜花

不在eval中delete abc應該是返回false;
2015-05-21 回復 有任何疑惑可以回復我~
#2

zcqno1

火狐的var定義的變量是可以delete的,chrome則不行,怎么不一樣呢
2015-09-26 回復 有任何疑惑可以回復我~

delete?操作符會從某個對象上移除指定屬性。成功刪除的時候回返回?true,否則返回?false。但是,以下情況需要重點考慮:

  • 如果你試圖刪除的屬性不存在,那么delete將不會起任何作用,但仍會返回true

  • 如果對象的原型鏈上有一個與待刪除屬性同名的屬性,那么刪除屬性之后,對象會使用原型鏈上的那個屬性(也就是說,delete操作只會在自身的屬性上起作用)

  • 任何使用?var?聲明的屬性不能從全局作用域或函數的作用域中刪除。

    • 這樣的話,delete操作不能刪除任何在全局作用域中的函數(無論這個函數是來自于函數聲明或函數表達式)

    • 除了在全局作用域中的函數不能被刪除,在對象(object)中的函數是能夠用delete操作刪除的。

  • 任何用letconst聲明的屬性不能夠從它被聲明的作用域中刪除。

  • 不可設置的(Non-configurable)屬性不能被移除。這意味著像Math,?Array,?Object內置對象的屬性以及使用Object.defineProperty()方法設置為不可設置的屬性不能被刪除。


0 回復 有任何疑惑可以回復我~

eval("var a=100;console.log(delete a)")這樣寫在火狐中返回false,在chrome中返回true,這是怎么回事?

0 回復 有任何疑惑可以回復我~

我也聽不懂

1 回復 有任何疑惑可以回復我~
#1

arlenhui

就是eval
2015-05-26 回復 有任何疑惑可以回復我~
cd?..
ls

ls?-all


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

老師在屬性刪除那一段delete ohno之后講的是什么聽不懂

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號