1. 程式人生 > >前端教程學習之ES6

前端教程學習之ES6

最近公司由於人事流動,前端人手比較少,被拉壯丁寫前端,一臉懵逼,跌跌撞撞,一個星期,前端負責的部分完成了七七八八,但是關於原理之類的不懂,都是copy其他介面或者其他專案慢慢來的。大體的語法懂一些。趁著週末,又大體看了些前端es6的語法,不得不說,應該是越來越簡單了吧,也有類,繼承之類的概念。

es6是JavaScript語言的標準,如你所想,有es6,當然也會有es5存在,es5是es6的上一個版本,但是這兩個版本之間的差異較大,有了許多新特性,也正是這些新特性,使前端開發變得簡單(相對於以前來說),學習es6之前,要對JavaScript有簡單的瞭解掌握,可自行百度。

es6相對於與之前,新增加了兩個關鍵字:let,const。大體描述:let定義的變數不會進行變數提升,const定義的常量不能被修改。並且,let與const都是塊級作用域。一臉懵是吧,慢慢道來。

在es6之前的版本中,我們想要定義一個變數,都是通過var關鍵字進行定義的。可以想一下,通過var定義的話有什麼比較坑的地方。我們通過var定義的變數,不管定義在哪個位置,都是視為被宣告在函式的頂部。

console.log(test);
var test='study';

有如上程式碼的話,輸出的是undefined,這段程式碼等同於

var test;
console.log(test);
test='1111';

這就是所謂的變數提升。也就是說,我們使用let進行定義的話不會有這種情況的存在。

至於const定義的變數不能被修改,是什麼意思呢,還是拿上面程式碼來說,略改一下

var test='111';
console.log(test);//111
test='222';
console.log(test);//222

不用細說了吧,看下列印結果,var定義的變數是允許修改的。

import,export匯入匯出模組。

這兩個不想細說,和後端的一樣,類似於class與import導包。不過,在es6中,允許部分匯入,使用部分倒入時候,使用{},{}中的就是部分匯入的內容,如下:

import {name, age} from './example' 。

在箭頭函式這塊,懵逼了好久,所以想具體詳細的講下箭頭函式。但是,個人認為,es6相對於es5比較,最大的變化就是class,就是上文講的import與export部分,耐於篇幅與興趣,上部分忽略了很多東西,可自行百度下,很簡單。

 JS中this關鍵字很常見,但是它似乎變幻莫測,讓人抓狂。這篇文章就來揭示其中的奧祕。

     藉助阮一峰老師的話:它代表函式執行時,自動生成的一個內部物件,只能在函式內部使用。這句話看似平常,可是要非常注意三個字:“執行時”,這說明this關鍵字只與函式的執行環境有關,而與宣告環境沒有關係。也就是這個this到底代表的是什麼物件要等到函式執行時才知道,有點類似函式定義時的引數列表只在函式呼叫時才傳入真正的物件。理解了這一點對後面this關鍵字規律的掌握有很大幫助。

     this關鍵字雖然會根據環境變化,但是它始終代表的是呼叫當前函式的那個物件。這就引出了JS中函式呼叫的問題。在JS中呼叫函式的模式可以分為4種: 方法呼叫模式、函式呼叫模式、構造器呼叫模式、apply呼叫模式。這些模式在如何初始化關鍵引數this上存在差異。。。