ECMAScript 6 知識總結(一、ECMAScript6 與ECMAScript5的對比)


ECMAScript 6 知識總結

一、ES6改良ES5的缺陷

1. ES6新增塊級作用域

**在塊級作用域內聲明的變量不會被外層所引用,也就是說不需要ES5通過(函數)閉包來解決全局變量污染的問題. **

  • 防止變量在塊級作用域外被訪問.

image

  • let/cont防止變量重聲明.重復聲明會報錯.

image

  • 不需要ES5閉包來解決變量污染的問題

image

  • ES5中循環體的閉包會訪問全局的 i ,而使用let 聲明的循環體會將本次循環變量鎖在塊級作用域內!

image

2.箭頭函數代替詞法作用域的"this"

在ES5中,"this"會隨着函數調用位置(全局/閉包),和函數調用方式(構造/普通)改變,ES6箭頭函數中的"this"總是指向聲明時的哪個對象

  1. 在下圖中,我們希望打印一個用戶的名字和薪水。假設我們從服務器異步獲取薪水數據。注意到當服務器返回結果時,函數里的 “this” 是 “window” 而不是 “person”。image

3. 處理"arguments"

在ES5中, arguments是一個偽數組,可以使用length來遍歷他,但卻不能使用完全Array的api(slice/sort).
在ES6中,可以使用新特性叫做rest參數,他的形式為 ...參數名,比如...args,rest是一個真數組,所以至此Array所有api調用.

  1. image
    image

4.

**從概念上講,在 ES6 之前的 JS 中並沒有和其他面向對象語言那樣的“類”的概念。長時間里,人們把使用 new 關鍵字調用的函數(也叫構造器)當做“類”來使用。 通過原型鏈混亂繼承(不方便) **

  1. 對比ES5與ES6中實現類
    image

5. 嚴格模式

"use strice",在 ES5 中, 嚴格模式是可選項,但是在 ES6 中,許多特性要求必須使用嚴格模式。 因此大多數開發者和 babel 之類的工具默認添加 use strict 到 JS 文件的頭部,以確保整個 JS 文件的代碼都采用嚴格模式,這個習慣有助於我們寫更好的 JavaScript.**

參考鏈接:https://75team.com/post/5-javascript-“bad”-parts-that-are-fixed-in-es6.html


免責聲明!

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



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