ES6 02塊級作用域

2022-09-10 08:00:17 字數 1199 閱讀 8863

要點: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的形象 但是為什麼...