ES6隨筆 重點

2021-10-09 09:54:32 字數 1700 閱讀 9268

es6新增塊級作用域概念。let和const宣告的變數和常量,只在所處的**塊內有效,外部訪問列印 x is not defined.

最典型的就是for迴圈中的變數宣告,用var宣告的話,i是全域性變數,每一次迴圈i的值都增加,所以在迴圈內部列印的i就是全域性變數i,所以i列印出來的就是最後一次i++完的值。let的塊級概念完美的解決了這個問題。

es5 只有兩種宣告變數的方法:var命令和function命令。es6 除了新增let和const命令,後面章節還會提到,另外兩種宣告變數的方法:import命令和class命令。

頂層物件屬性

globalthis

陣列的解構賦值

物件的解構賦值

字串的正則方法 :

字串物件共有 4 個方法,可以使用正規表示式:match()、replace()、search()和split()。

arguments物件不是陣列,而是乙個類似陣列的物件。所以為了使用陣列的方法,必須使用array.prototype.slice.call先將其轉為陣列。

箭頭函式有幾個使用注意點

(1)函式體內的this物件,就是定義時所在的物件,而不是使用時所在的物件。

(2)不可以當作建構函式,也就是說,不可以使用new命令,否則會丟擲乙個錯誤。

(3)不可以使用arguments物件,該物件在函式體內不存在。如果要用,可以用 rest 引數代替。

(4)不可以使用yield命令,因此箭頭函式不能用作 generator 函式。

上面四點中,第一點尤其值得注意。this物件的指向是可變的,但是在箭頭函式中,它是固定的。

箭頭函式不適用場合:

第乙個場合是定義物件的方法,且該方法內部包括this。

第二個場合是需要動態this的時候,也不應使用箭頭函式。

尾呼叫----以及尾呼叫優化

es6中規定嚴格模式下,普通函式中呼叫this指向undefined

陣列的擴充套件

擴充套件運算子 … ,該運算子主要用於函式呼叫。該運算子將乙個陣列,變為引數序列。擴充套件運算子後面還可以放置表示式。如果擴充套件運算子後面是乙個空陣列,則不產生任何效果。只有函式呼叫時,擴充套件運算子才可以放在圓括號中,否則會報錯。

應用 :

·複製陣列 : const a2 = […a1]

·合併陣列 :[…arr1,…arr2,…arr3]---->淺拷貝

·與解構賦值結合 : 如果將擴充套件運算子用於陣列賦值,只能放在引數的最後一位,否則會報錯。

·字串 :擴充套件運算子還可以將字串轉為真正的陣列。凡是涉及到操作四個位元組的 unicode 字元的函式,最好都用擴充套件運算子改寫。

對es6中export、export default、import的理解

其中export和export default最大的區別就是export不限變數數 可以一直寫,而export default 只輸出一次 而且 export輸出的變數想要使用必須使用來盛放,而export default 不需要 只要import任意乙個名字來接收物件即可。

export default可以跟在非匿名函式之前,也可以跟在匿名函式之前,同時也可以是乙個物件之前。

import :

import 『**』 from 'vue』直接尋找的是依賴包裡的檔案

如果import 『**』 from 『./vue』 表示是同級檔案下的js。

。。。未完待續

ES6方面重點摘要

1 變數宣告 1 內層變數覆蓋外層變數 即後面的覆蓋前面的 2 迴圈變數的宣告,i值在全域性範圍內有效,所以最後輸出的都是最後一輪i的值 3 let const的引入,為js增加了塊級作用域的概念 const一旦宣告,常量的值就不能改變 4 const的應用場景,引用第三方庫時,用const宣告 2...

ES6系列 ES6簡介

2015年6月17日,ecmascript的第六個版本正式發布,該版本正式名稱為ecmascript 2015,但通常被稱為ecmascript 6或者es6。瀏覽器對es6的支援情況 es6主要應用於node.js,如果想用在瀏覽器中,就需要使用轉碼器 將es6 轉成es5 這意味著,可以用es6...

JS高階 四 ES6(常用的 重點的)

模板字串就是一種字串的新的表現形式 var s1 abc 1 字串和變數拼接 var s3 a s1 b s2 var s4 a b 2 字串換行 var s5 123 console.log s5 var obj var obj 生成2個變數,name值來自於obj.name age值來自於obj...