1. 程式人生 > >JS全局對象的屬性

JS全局對象的屬性

logs fun fin 都是 ons span 命令 window對象 spa

全局對象是最頂層的對象,在瀏覽器環境指的是window對象。在ES5中,全局對象的屬性與全局變量是等價的。

var str = "hello";
function test(){
    alert(window.str);
}
window.str = "hello";
function test(){
      alert(str);
}

以上兩段代碼輸出結果都是hello。

這種規定被視為是JS語言的一大問題,因為很容易不知不覺就創建了全局變量。在ES6中,var命令和function命令聲明的全局變量依舊是全局對象的屬性,而let命令、const命令和class命令聲明的全局變量不屬於全局對象的屬性。

let str = "hello";
function test(){
    alert(window.str);
}

上面代碼中,全局變量str由let命令聲明,所以不是全局對象的屬性,返回undefined。

JS全局對象的屬性