es6:阮一峰教程學習


 

全局作用域 函數作用域 塊級作用域


一:塊級作用域

1.外層作用域無法讀取內層作用域的變量

2.let const聲明的變量只能先聲明,后使用。 let const都是塊級作用域!

 const聲明的變量必須賦初始值且不可變,像final! 不可變是指引用不可變,也就是內存中的那片地址。

Object.freeze(要凍結對象) 引用指向的對象不可變哦! const聲明引用不可變!

3.es6六種聲明變量的方法:var function let const import class

4.模塊化編程:封裝的思想哦!  作用域

5.頂層對象 全局對象

 

二:變量的解構賦值

1.數組

賦值的時候,進行模式匹配!   就是按照模式匹配的方式來賦值!(解構)

模式不匹配:解構失敗

只要某種數據結構是可遍歷的,那么就可以進行解構賦值。


2.對象

解構賦值:模式匹配的時候按照key、value匹配。不同於數組是按照索引。


3.字符串

 三:

 

 

五:數組擴展

1.Array.from()方法用於將兩類對象轉為真正的數組:   類似數組的對象(array-like object)和可遍歷(iterable)的對象(包括ES6新增的數據結構Set和Map)。

2.Array.of()方法用於將一組值,轉換為數組。

3.Array.copyWithin()  在當前數組內部,將指定位置的成員復制到其他位置(會覆蓋原有成員),然后返回當前數組。也就是說,使用這個方法,會修改當前數組。

4.數組實例的find( function(value,index,arr)) 方法:  和filter很像哦!

  數組實例的findIndex()方法的用法與find方法非常類似,返回第一個符合條件的數組成員的位置,如果所有成員都不符合條件,則返回-1

5.數組實例的fill()方法,使用給定的值填充數組。

6.數組實例的遍歷:keys()  鍵名的遍歷

                                 values()  鍵值得遍歷

                                 entries()  鍵值對的遍歷

 

六:對象的擴展

1.es6變量和方法的簡寫

2.Object.is()    “===”的改進版      一是+0不等於-0,二是NaN等於自身。

3.Object.assign方法用於對象的合並,將源對象(source)的所有可枚舉屬性,復制到目標對象(target)。

   同名屬性會覆蓋,后面的覆蓋前面的。

4.Object.assign拷貝的屬性是有限制的,只拷貝源對象的自身屬性(不拷貝繼承屬性),也不拷貝不可枚舉的屬性enumerable: false)。  ??????

 有一些函數庫提供Object.assign的定制版本(比如Lodash的_.defaultsDeep方法),可以解決淺拷貝的問題,得到深拷貝的合並。

   

 

七:Symbol  JavaScript的第七種數據類型.

 

       Number    String     Object     Boolean   Undefined      Null

 

八:Set和Map數據結構

1.Set不會添加重復的值!  

2.WeakSet: 首先,WeakSet 的成員只能是對象,而不能是其他類型的值。

                     其次,弱引用,引用存在也會被GC機制回收。

3.Map: 本質上是鍵值對的集合(Hash 結構),但是傳統上只能用字符串當作鍵。這給它的使用帶來了很大的限制。 

 WeakMap:  首先,WeakMap只接受對象作為鍵名(null除外),不接受其他類型的值作為鍵名。

                      

九:Iterator 和 for...of 循環

1.Javascript表示集合的數據結構:  數組  對象    Map     Set     

   遍歷器(Iterator)就是這樣一種機制。它是一種接口,為各種不同的數據結構提供統一的訪問機制。

 

十:Promise對象

1.有了Promise對象,就可以將異步操作以同步操作的流程表達出來,避免層層嵌套的回調函數。

2.Promise對象,容器,里面保存着某個未來才會結束的事件的結果。

3.Promise對象代表一個異步操作,三種狀態:Pending、Resolved、Rejected。  一個異步操作是一個對象。

   異步操作的結果才可以更改狀態。    

   狀態一旦改變就會凝固。

4.then()方法:它的作用是為 Promise 實例添加狀態改變時的回調函數。前面說過,then方法的第一個參數是Resolved狀態的回調函數,第二個參數(可選)是Rejected狀態的回調函數。

   pending-》resolved      pending-》rejected:狀態改變執行回調! 

5.jQuery的所有Ajax操作函數,默認返回的就是一個deferred對象。

6.Promise.resolve()    有時需要將現有對象轉為Promise對象,Promise.resolve方法就起到這個作用。

 

 

十一:Class

1.類的數據類型是函數,且類本身指向構造函數

2.由於類的方法都定義在prototype對象上面

3.表達式就是變量?      就是一個賦值表達式?  

4.constructor:類的構造函數,constructor方法默認返回實例對象(即this),完全可以指定返回另外一個對象。

 

 

十二:Reflect對象 

1.Reflect對象與Proxy對象一樣,也是 ES6 為了操作對象而提供的新 API。

2.函數式行為!   語言的一種完善! 

 

十三:Proxy對象

1.對象的攔截器    訪問對象時候的代理。

 

ES6 知識點總覽:

let/const     變量的解構賦值      字符串擴展      正則擴展      數值擴展     函數擴展    數組擴展     對象擴展      Symbol      Set和Map數據結構       Promise對象     Class

模塊加載方案    Proxy   Reflect

 

 

 

 

 

 

 

 

發現的問題

1.可遍歷解構? Iterator

2.重載和覆蓋?     好久沒看都忘記了啊! 

3.深拷貝和淺拷貝?  



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM