要點:1.全域性作用域 2.塊級作用域
一、全域性作用域
1.瀏覽器環境有乙個頂層物件window,其屬性和var的全域性變數等價
2.window物件的內建屬性,輸出預設值;非內建屬性undefined
3.var若設定window物件的內建屬性作為變數,則會直接覆蓋
console.log(window.name); //空,內建屬性
console.log(window.abcd); //
undefined,非內建屬性
console.log(name);
//空,內建全域性
console.log(abcd); //
報錯console.log(window.name===name);//
true,等價
var value=10;
console.log(window.value);
//var的全域性變數即window的屬性
var name='mr.lee';
console.log(window.name);
//內建屬性被覆蓋
4.以上,對比現在模組化程式設計理念,顯得格格不入
5.webstorm 環境中根本無法識別window,它是node環境,不支援物件
二、塊級作用域
1.es6之前只有全域性作用域和函式作用域,並沒有塊級作用域
2.迴圈體和條件體就是塊級作用域就是兩個花括號區域:{}
3.在塊級區域不使用let會造成全域性變數汙染問題
4.}}塊級作用域支援多層巢狀,每一層均為封閉,只作用於此:
console.log(value);報錯
}}}
5.es6之前,採取自我立即執行匿名函式的方法來阻止汙染
(function()());
console.log(value);
//報錯
6.es6之前函式必須在頂層宣告,但違反不報錯,而es6則開始支援
7.塊級作用域內函式宣告,可全域性訪問,沒封閉
} fn();
//正常訪問
8.推薦使用函式表示式的方法去構建函式
;fn();
}
ES6 02 箭頭函式
一 箭頭函式 1 什麼是 對普通函式宣告的簡寫 2 何時使用 今後絕大多數匿名函式的建立,都用箭頭函式 3 如何使用 去掉function 在 和 之間加 如果形參列表只有乙個變數,可省略 如果函式圖只有一句話,可省略 但是,如果僅有的這句話,還是return,則必須省略return,去掉 時,還要...
ES6 02 新增方法及函式新增
一,模版字串 就是用反引號定義的字串,其中可以用 包住可修改的變數 var string1 他叫 他今年 歲了 二,字串內建方法 1 repeat函式 將目標字串重複n次,返回值為乙個新的字串,不影響目標字串。var name 帥帥氣氣 var name1 name.repeat 2 console...
塊級作用域
跨級作用域本身沒有宣告可以說的,就需要注意兩點 1.跨級作用域內宣告的var變數並不會存在這個塊級作用域內,而是會提公升到非塊級作用域內 2.在塊級作用域內宣告function,在不同瀏覽器會有不同結果,如果是根據條件宣告function的話,請用var func function的形象 但是為什麼...