ES6新特性學習

1、前言

  近半個月找工做一來,都會常常被問到es6新增特性的問題,例如箭頭函數、模板等等,在之前剛接觸es6的新語法是,也是隻是知道大概知道怎麼用而已,也沒有深刻的去理解背後的含義。因此挺吃虧的,後面瞭解了一下,es6終歸屬於新語法,仍是有存在瀏覽器兼容的問題,通常的話在框架裏面是有比較多一點。在學習es6以前,得先了解一下何爲es6:es6全稱是ECMAScript 6.0,是 JavaScript 語言的下一代標準,已經在 2015 年 6 月正式發佈了。它的目標,是使得 JavaScript 語言能夠用來編寫複雜的大型應用程序,成爲企業級開發語言。node

2、知識點

1. const 和 let

const 定義的是常量,也就是不可改變值的變量,像是在node.js裏面獲取到某一個模塊,最好就是使用const定義爲常量,以下面例子,獲取到路徑模塊es6

const path = require("path");瀏覽器

let 用於定義局部變量,只在定義改變量所在的代碼塊內有效,與var不相同的是,使用var聲明的變量能夠在全局範圍內訪問到這個變量,最簡單的例子就是for循環。框架

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); 

  在這個例子中,輸出來的數字是 10,若是說當循環體的 i 變量是用let定義的話,那結果就不同了,就是6。也就是說,變量ilet聲明的,當前的i只在本輪循環有效,因此每一次循環的i其實都是一個新的變量,因此最後輸出的是6。另外,使用let定義的變量,是不存在變量提高的,也就是說不能先使用變量再定義,這是會保存的。函數

2.箭頭函數

ES6容許使用「箭頭」(=>)定義函數。學習

var f = v => v

上面語法等同於ui

var f = function (v) {
  return v  
}

若是當箭頭函數不須要參數或者多個參數時,能夠用()

var f = () => {
    return 5
}     

使用箭頭函數須要注意的點:

(1)函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象,緣由是箭頭函數根本沒有本身的this,致使內部的this就是外層代碼塊的thisthis

(2)不能夠看成構造函數,也就是說,不可使用new命令,由於它沒有this,因此也就不能用做構造函數。spa

(3)不可使用arguments對象,該對象在函數體內不存在。若是要用,能夠用Rest參數代替。prototype

(4)不可使用yield命令,所以箭頭函數不能用做Generator函數。

箭頭函數與常規的函數不一樣的地方:

不能被用做構造函數:沒有內部方法 [[Construct]] (該方法容許普通的函數經過 new 調用),也沒有 prototype 屬性。所以, new (() => {}) 會拋出錯誤。

3、

除此以外還有module、export、import、class等新增內容,Javascript愈來愈接近面向對象的語言。

相關文章
相關標籤/搜索