ES6基礎

簡介:

es6是新一代的javascript標準,以前講的是es5的語法。es6以後的各個版本均可以稱之爲es6由於它們都是在es6的基礎上作少許更改javascript

聲明變量:

以前聲明變量都是用var去聲明變量,使用var去聲明變量有變量提高的問題。若是在聲明變量以前去使用變量不會報錯變量的值是undefinde。java

建議使用es6提供的如下兩種方法去聲明變量:ios

let 例子:let 變量名=變量的值es6

const 例子:const 變量名=變量的值編程

使用let去聲明的變量在沒有聲明以前去使用變量會直接報錯,且不要使用let去聲明同一個變量使用let去聲明同一個變量會報錯axios

使用const聲明的變量不能從新賦值不然會報錯,且使用const聲明引用值時能夠改變值裏的內容,但不能改變引用值在堆內存中的地址不然會報錯,promise

注:使用let和const聲明的變量都擁有塊級做用域而var聲明的沒有dom

es6的箭頭函數:

以前的函數聲明:異步

          function 函數名 () {}異步編程

箭頭函數:

          函數名=(參數) => {}

箭頭函數的this指向的問題:

事件函數的this指向對應綁定該事件的dom對象。對象中的方法的this 指向該對象。普通函數調用時直接指向window。箭頭函數的this指向箭頭函數建立時所在環境的this,

es6的擴展運算符:

... 就是擴展運算符

使用方法:...變量名

例: let arr=[1,2,3,4,5]          let arr1=[...arr,6,7,8]                                         這樣arr1裏邊就有了arr的內容

promise對象:

在js中咱們常常會用到回調函數,也就是當某種操做進行完或者知足某個條件時以後咱們再去調用某個函數,那麼這個函數就叫作回調函數,回調函數是能夠嵌套的那麼當咱們的回調函數嵌套多層時就會產生一種叫作「回調地獄」的問題。

什麼是promise?

promise是一個構造函數,promise是一種異步編程的解決方案。它有三種狀態分別是pedding-(進行中),resolve-(已完成),reject-(已失敗),只有異步操做的結果才能夠決定當前是哪一種狀態其餘任何操做都改變不了當前的狀態。promis的狀態改變只會改變兩種就是從pedding至resolve的狀態和pennding至seject的狀態。有了promise就會將異步操做由同步操做展示出來,axios請求就是基於promise的。

再使用promise以前咱們要先實例化一個promise對象, const promise=new promise(function(reslove,reject){ 知足條件和不知足條件時分別執行reslove函數和reject函數 if(條件){ 這個reslove的函數的調用就時下邊promise.then函數裏的()裏傳遞過來的函數 }else{ reject() 這個reject的函數的調用就時下邊promise.then().catch函數裏的()裏傳遞過來的函數 }

}) promise中有兩個方法: promise.then(()=>{ 函數體

}).catch(()=>{

函數體
複製代碼

});

當咱們在函數中去使用promise時能夠這樣

function asd(){ 函數體; return new promise(reslove,reject){ if(條件){ reslove() }else{ reject() } }

}

asd().then(()=>{這裏就是知足條件時執行的代碼}).catch(()=>{這裏是失敗時執行的代碼})

當咱們想要再去調用的話能夠再.then()的函數裏繼續return而後繼續再.then()後邊繼續.then()

咱們的axios請求就是這樣的原理這樣就完成了將異步變爲同步的操做只有當上一哥函數完成以後纔會執行下一個函數

相關文章
相關標籤/搜索