ES6學習總結(一)

前端發展的太快了,快到ES6,ES7出來以後,今年已是ES8了,可是縱然前端發展很快,咱們除了快馬加鞭的學習新的技術以外,也要沉下心來,好好的潛心磨礪本身,本文是整理了本身學習ES6以後相關的知識要點,寄但願於書之於筆,一來本身能夠更好地領悟,而來也能夠留做往後翻閱查看。javascript

ES6新增的知識點主要包括變量聲明let以及const,新增類型symbol,模板字符串,語法糖實現類,用於異步調用的promise對象,模塊化,箭頭函數,rest參數以及參數默認值,Set和Map集合,for of循環和迭代器iterator以及Generator等等,能夠看出,ES6較之於ES5仍是有着不少的新增特性,接下來會分爲幾篇文章將其一一介紹。前端

let和constjava

在JavaScript中我們之前主要用關鍵var來定義變量,ES6以後,新增了定義變量的兩個關鍵字,分別是let和constpromise

對於變量來講,在ES5中var定義的變量會提高到做用域中全部的函數與語句前面,而ES6中let定義的變量則不會,let聲明的變量會在其相應的代碼塊中創建一個暫時性死區,直至變量被聲明。bash

//var聲明變量
console.log(x === undefined); // "true"
var x = 3;
//let聲明變量
console.log(x === undefined); // Uncaught ReferenceError: x is not defined
let x = 3;

從上面的代碼能夠看出來,使用let咱們能夠僞造一個代碼塊,終於再也不侷限於函數做用域中,並且對於代碼也會更加的規範,使用let定義變量,提倡人們先定義再使用,否則會報錯。異步

const主要做用於定義常量,並且一旦聲明,初始必須賦值,而且變量值不能更改,不然會報錯模塊化

const CALA;
//Missing initializer in const declaration
const CALA="calabash519"
CALA="hello world";
//Assignment to constant variable.

symbol函數

ES6 之前,咱們知道5種基本數據類型分別是Undefined,Null,Boolean,Number以及String,而後加上一種引用類型Object構成了JavaScript中全部的數據類型,可是ES6出來以後,新增了一種數據類型,名叫symbol,像它的名字表露的同樣,意味着獨一無二,意思是每一個 Symbol類型都是獨一無二的,不與其它 Symbol 重複。學習

能夠經過調用 Symbol() 方法將建立一個新的 Symbol 類型的值,這個值獨一無二,不與任何值相等。rest

var mySymbol=Symbol();
console.log(typeof mySymbol) //"symbol"

其餘類型能夠被強制轉換成字符串,可是Symbol 卻不能,千萬不要這麼作,否則會報錯,提示TypeError。

可使用Symbol來定義對象的屬性,並且當Symbol做爲屬性名的時候,必須用[]來進行調用而不是點操做符。

var obj = {};
var mySymbol = Symbol();
obj[mySymbol] = "calabash519";
console.log(obj[mySymbol]); //calabash519
console.log(obj.mySymbol); //undefined

Symbol還可使 instanceof 可擴展,在 ES6 中,object instanceof constructor 表達式被標準化爲構造函數的一個方法:constructor[Symbol.hasInstance](object),這意味着它是可擴展的。

模板字符串

字符串是JavaScript中基本類型之一,應該算是除了對象以外是使用最爲頻繁的類型吧,字符串中包含了例如substr,replace,indexOf,slice等等諸多方法,ES6引入了模板字符串的特性,用反引號來表示,能夠表示多行字符串以及作到文本插值(利用模板佔位符)。

// 之前的多行字符串咱們這麼寫:
console.log("hello world 1\n\
hello cala");
// "hello world
// hello cala"

//有了模板字符串以後
console.log(`hello world
string text line 2`);
// "hello world
// hello cala"

能夠用${}來表示模板佔位符,能夠將你已經定義好的變量傳進括弧中,例如:

var name="cala";
var age=22;
console.log(`hello,I'am ${name},my age is ${age}`)
//hello,I'am cala,my age is 22

上述是個很簡單的例子,展現了模板字符串和模板佔位符的基本用法,對比與普通字符串,模板字符串能夠更好地支持自動轉義特殊的字符串,也能夠在其內嵌套控制語句,使得代碼的邏輯更加清晰。

相關文章
相關標籤/搜索