1. 程式人生 > >前端知識 | 簡析ES6

前端知識 | 簡析ES6

有意思 scrip 參數傳遞 使用 軟件 參數 有意 ans 細節

CMAScript 6 簡介:

CMAScript 6.0(以下簡稱 ES6)是 JavaScript 語言的下一代標準,已經在 2015 年 6 月正式發布了。它的目標,是使得 JavaScript 語言可以用來編寫復雜的大型應用程序,成為企業級開發語言。

剛開始使用 vue 或者 react,很多時候我們都會把 ES6 這個大兄弟加入我們的技術棧中。以下是我們在日常開發中比較常用的特性。

1.變量聲明 const 和 let

我們都是知道在 ES6 以前,var 關鍵字聲明變量。無論聲明在何處,都會被視為聲明在函數的最頂部(不在函數內即在全局作用域的最頂部)。這就是變量提例如:

技術分享圖片

以上的代碼實際上是:

技術分享圖片

所以無論如何 test 都會被創建聲明

但是在 ES6 中新增了 let 和 const 命令。let 表示、const 表示常量。let 和 const 都是在它們所在的塊級作用域中有效。看以下代碼:

技術分享圖片

const 聲明的常量不能被修改

技術分享圖片

let 的作用域是在它所在當前代碼塊,不會存在變量提升。for 循環的計數器,就很合適使用 let 命令。列入以下代碼

技術分享圖片

技術分享圖片

2.函數

函數默參數

在 ES5 我們給函數定義參數默認值:

技術分享圖片

但當 num 傳入為0的時候就是 false,此時 num = 200 與我們的實際要的效果明顯不一樣。

ES6 為參數提供了默認值。在定義函數時便初始化了這個參數,以便在參數沒有被傳遞進去時使用。

技術分享圖片

箭頭函數

ES6 很有意思的一部分就是函數的快捷寫法。也就是箭頭函數。

箭頭函數最直觀的三個特點:

· 不需要 function 關鍵字來創建函數

· 省略 return 關鍵字

· 繼承當前上下文的 this 關鍵字

技術分享圖片

3.更方便的數據訪問--解構

數組和對象是 JS 中最常用也是最重要表示形式。為了簡化提取信息,ES6 新增了解構,這是將一個數據結構分解為更小的部分的過程。

ES5 中我們提取對象中的信息形式如下:

技術分享圖片

ES6 中我們從對象或者數組裏取出數據存為變量,例如

技術分享圖片

4.Spread Operator 展開運算符

ES6 中的另外一個特性就是 Spread Operator 三個點兒...

組裝對象或者數組

技術分享圖片

想獲取數組或者對象除了前幾項或者除了某幾項的其他項

技術分享圖片

對於 Object 而言,還可以用於組合成新的 Object。(ES2017 stage-2 proposal) 當然如果有重復的屬性名,右邊覆蓋左邊

技術分享圖片

5.import 和 export

import 導入模塊、export 導出模塊

技術分享圖片

導入與導出的一些細節:

1.當用 export defaultpeople 導出時,就用 import people 導入(不帶大括號)


2.一個文件裏,有且只能有一個 exportdefault。但可以有多個 export。


3.當用 export name 時,就用 import { name } 導入(記得帶上大括號)


4.當一個文件裏,既有一個 exportdefault people, 又有多個 export name 或者 export age 時,導入就用 import people, { name, age}

5.當一個文件裏出現 n 多個 export 導出很多模塊,導入時除了一個一個導入,也可以用 import * asexample

6.Promise

Promise 是異步編程的一種解決方案,比傳統的解決方案——回調函數和事件——更合理和更強大。它由社區最早提出和實現,ES6 將其寫進了語言標準,統一了用法,原生提供了 Promise 對象。

所謂 Promise,簡單說就是一個容器,裏面保存著某個未來才會結束的事件(通常是一個異步操作)的結果。從語法上說,Promise 是一個對象,從它可以獲取異步操作的消息。Promise 提供統一的 API,各種異步操作都可以用同樣的方法進行處理。

基本用法:

技術分享圖片

Promise 構造函數接受一個函數作為參數,該函數的兩個參數分別是 resolve 和 reject。它們是兩個函數,由 JavaScript 引擎提供,不用自己部署。

resolve 函數的作用是,將 Promise 對象的狀態從“未完成”變為“成功”(即從 pending 變為 resolved),在異步操作成功時調用,並將異步操作的結果,作為參數傳遞出去;reject 函數的作用是,將 Promise 對象的狀態從“未完成”變為“失敗”(即從 pending 變為 rejected),在異步操作失敗時調用,並將異步操作報出的錯誤,作為參數傳遞出去。

以上整理的是比較常見的 es6 特性,更多 es6 的內容大家可以進入到官方文檔中學習。


【海說軟件接受各種技術咨詢及開發業務】

-END-


前端知識 | 簡析ES6