- [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
