全局變量和window屬性上定義的變量


  • [x] 知識點1

全局變量和window屬性上定義的變量的區別:
全局變量不能通過delete刪除,而window屬性上定義的變量可以通過delete刪除

  • [x] 知識點2

嘗試訪問未聲明的變量會報錯,..is not defined
但是通過查詢window查詢,可以知道某個可能未聲明的變量是否存在,不會報錯,只會顯示undefined

//知識點1
var num=23;
window.str='string';
delete num;
delete str;
console.log(num);  //23

console.log(str);  //str is not defined
//解釋:全局變量不能通過delete刪除,是因為通過var語句添加的window屬性有一個名為[Configurable]的特性,
//這個特性的值默認為false,所以這樣定義的屬性不可以通過delete操作符刪除

//知識點2
var newValue=oldValue; // 報錯: oldValue is not defined
var newValue=window.oldValue;   //不會報錯
console.log(newValue);  //undefined


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM