ES6方面重點摘要

2022-01-20 22:22:51 字數 1455 閱讀 8482

1、變數宣告

(1)內層變數覆蓋外層變數(即後面的覆蓋前面的)

(2)迴圈變數的宣告,i值在全域性範圍內有效,所以最後輸出的都是最後一輪i的值

(3)let、const的引入,為js增加了塊級作用域的概念(const一旦宣告,常量的值就不能改變)

(4)const的應用場景,引用第三方庫時,用const宣告

2、原型、建構函式、繼承

引入了class類的概念,先用class定義乙個「類」,裡面有乙個constructor構造方法,this關鍵字代表例項物件。

(1)constructor內定義的方法和屬性是例項物件自己的,而constructor外定義的方法和屬性則是所有例項物件共享的

(2)class之間通過extends關鍵字實現繼承。子類必須在constructor方法中呼叫super方法,否則新建例項時會報錯(這是因為子類沒有自己的this物件,而是繼承父類的this物件,然後對其進行加工。如果不呼叫super方法,子類就得不到this物件。)

(3)es6的繼承機制,實質是先創造父類的例項物件this(所以必須先呼叫super方法),然後再用子類的建構函式修改this。

3、箭頭函式

(1)簡單的寫法

(2)對this重定向、和this繫結的改進。

(3)當我們使用箭頭函式時,函式體內的this物件,就是定義時所在的物件,而不是使用時所在的物件。並不是因為箭頭函式內部有繫結this的機制,實際原因是箭頭函式根本沒有自己的this,它的this是繼承外面的,因此內部的this就是外層**塊的this

4、模板字串

(1)用反引號來標識起始,用 ${} 來引用變數,而且所有的空格和縮排都會被保留在輸出之中

5、解構

(1)正寫情況、反寫情況均可解構:通過解構賦值的方法,從node物件讀取相應的值重新為這兩個變數賦值

(2)為非同名區域性變數賦值,當使用其他變數名進行賦值時也可以新增預設值,只需在變數名後新增等號和預設值即可

(3)巢狀物件解構:解構模式可以應用於任意層級深度的物件,且每一層都具備同等的功能

6、預設值

(1)給引數指定預設值:當指定的屬性不存在時,可以隨意定義乙個預設值,在屬性名稱後新增乙個等號(=)和相應的預設值即可

7、rest語法:

(1)不定元素,三個點,類似於arguments

8、模組化:import/export

(1)require.js寫法:先定義define,然後再require

(2)commonjs寫法:先require,再exports

(3)es6寫法:先import,再export

export命令除了輸出變數,還可以輸出函式,甚至是類;import則匯入這些變數、函式或類;

用 as 實現一鍵換名;

除了指定載入某個輸出值,還可以使用整體載入,即用星號(*)指定乙個物件,所有輸出值都載入在這個物件上面。通常 星號* 結合 as 一起使用比較合適。

ES6隨筆 重點

es6新增塊級作用域概念。let和const宣告的變數和常量,只在所處的 塊內有效,外部訪問列印 x is not defined.最典型的就是for迴圈中的變數宣告,用var宣告的話,i是全域性變數,每一次迴圈i的值都增加,所以在迴圈內部列印的i就是全域性變數i,所以i列印出來的就是最後一次i 完...

ES6學習摘要(01)(新人學習)

由於最近本人在學習es6,做一些筆記能夠更好的熟悉,就趁此機會來寫一篇關於es6的新人學習摘要吧。希望大佬可以給出一些意見,也希望和我一樣的新人能更好更快的了解和熟悉es6。首先在這邊我要感謝阮大大 有這麼好的入門教程 搬運工,部分內容不講述 其次註明本文只用於本人和其他新手了解熟悉es6,非其他用...

好用的ES6方法

es6提供了array.includes 函式判斷是否包含某一元素,除了不能定位外,解決了indexof的上述的兩個問題。它直接返回true或者false表示是否包含元素,對nan一樣能有有效。const arr1 a b c d e f g h i j k nan console.log arr1...