ES6基礎(chǔ)姿勢

1,變量

Var 的缺陷
1-1枷畏,可以重復(fù)聲明,但是在C語言里面不可以虱饿;
1-2拥诡,無法限制修改,即無法設(shè)置常量氮发。在C語言里面是可以定義常量的渴肉,這個常量放在data區(qū)域,不能修改爽冕,但是var定義一個常量仇祭,是可以更改的;
1-3扇售,沒有塊級作用域前塔。在C語言里面{}就是塊,在塊里面定義的變量即使與塊外面的定義的變量一致承冰,那么也不會相互影響华弓。

ES6里面的定義變量關(guān)鍵字let和const

使用let無法重復(fù)聲明,使用const也無法重復(fù)聲明困乒,且不可修改寂屏。存在塊級作用域。
只要寫在{}里面娜搂,在{}外面調(diào)用的就報錯迁霎。

2,函數(shù)-箭頭函數(shù)

()當(dāng)只有一個參數(shù)的時候可以省去
只有一個return時百宇,可以省去{return}

3考廉,函數(shù)的參數(shù)

3-1,參數(shù)擴展和展開
收集參數(shù)携御,舉個栗子

function show(a,b,…args){}
show(1,2,3,4,5);

那么args=3,4,5
數(shù)組展開傳參昌粤,舉個栗子

function show(a,b,c){}

Show需要傳三個參數(shù)既绕,但是參數(shù)寫在了一個數(shù)組中

let arr = [1,2,3];
//此時可以用show(…arr);相當(dāng)于show(1,2,3);

展開數(shù)組的效果就跟直接把數(shù)組的內(nèi)容取出來傳參。

總之…能夠?qū)⒎蛛x的參數(shù)打包涮坐,也可以將打包好的參數(shù)解開成單個的參數(shù)凄贩,對于數(shù)組來說,說白了可以直接將方括號[]去掉袱讹。
3-2疲扎,默認參數(shù)
在函數(shù)里面的默認參數(shù)可以這樣寫:

show(a,b=2,c=10){
    console.log(a,b,c)//1,2捷雕,10
}

4椒丧,解構(gòu)賦值

4-1,左右兩邊解構(gòu)必須一樣
舉個栗子

let [a,b,c] = [1,2,3]
let {a,b,c} = {a:1,b:2,c:3}

4-2非区,右邊必須是個合法的東西瓜挽,{1,2}就會報錯
4-3,聲明和賦值不能分開征绸,必須放在一起
舉個栗子

let [a,b];
[a,b] = [1,2]

這樣寫的話就會報錯

5久橙,數(shù)組

5-1,map映射管怠,一對一,返回數(shù)組
舉個栗子

let arr=[1,2,3]
let result = arr.map(item=>item*2)
let result = arr.map(item=>item>=1?’d大于1:’’小于1)淆衷;

5-2,reduce匯總 - 返回一個數(shù)而不是數(shù)組渤弛,如可以計算總數(shù)和 平均數(shù)
舉個栗子

let score = [100,101,102]
score.reduce((tmp, item, index)=>{

    return tmp+item

} )

可以看到返回的是總數(shù)
5-3祝拯,filter過濾器,返回的是數(shù)組
舉個栗子

let arr=[1,2,3,4,5,6]
let result = arr.filter(item=>item%3==0);

返回被3整除的數(shù)字
5-4她肯,forEach 循環(huán)迭代

6佳头,字符串

6-1,多了兩個新方法

startWith和endWith

6-2晴氨,字符串模板

let a= 12
let str = `a${a}bc`//a12bc

7康嘉,面向?qū)ο?/h3>

7-1,class關(guān)鍵字籽前,構(gòu)造器和類分來了
7-2亭珍,class里面直接加方法
7-3,繼承枝哄,通過super來繼承
之前的類的寫法:


function User( ){
    this.name = name;
    this.age = age;
} 

User.prototype.showName = function(){
    console.log(this.name)
}
User.prototype.showAge = function(){
    console.log(this.age)
}

var user1 = new User(‘張三’肄梨,21);

ES6對類的寫法:

class User{
    constructor(name, age){
        this.name = name;
        this.age = age
    }
    showName(){
        console.log(this.name);
    }
    showAge(){
        console.log(this.age);
    }
}

之前類的繼承:

function VipUser(name, age, gender){
    User.call(this,name,age);
    this.gender = gender;
}

VipUser.prototype = new User();
VipUser.prototype.constructor=VipUser;
VipUser.prototype.showGender = function(){
    console.log(this.gender)
}

ES6的繼承

class VipUser extends User{
    constructor(name,age,gender){
        super(name, age);//繼承超類(繼承父類)
        this.gender=gender
    }
    showGender(){
        console.log(this.gender)
    }
}

8挠锥,面向?qū)ο蟮膽?yīng)用

React - 強依賴于ES6面向?qū)ο?br> 8-1众羡,組件化,一個組件就是一個class
8-2蓖租,jsx語法

9粱侣,json

JSON.stringify變成字符串
JSON.parse()變成JSON
需要注意的是在轉(zhuǎn)換成JSON過程中辆毡,字符串的標準寫法
1,必須是雙引號
2甜害,所有名字都需要加雙引號
否則不能轉(zhuǎn)換成功

簡寫方法:

可以直接寫變量,只要json對象的key值和value名字一致就可以

如let a =12; let b=12;
但是此時需要傳一個json對象球昨,后端要求的對象屬性名也是a,b尔店,那么可以這樣寫:

let json = {a,b,c:32}
如果里面有函數(shù),那么可以省去:function
舉個栗子

let json = {
    a:1,
    show(){
        alert(this.a)
    }
}

10主慰,promise函數(shù)

ES6自帶promise嚣州,需要的時候通過new來創(chuàng)建。

注意promise.all 和promise.race的使用和區(qū)別
但是也有缺點共螺,比如好幾個請求互相之間有邏輯關(guān)系该肴,那么此時的promise就不適用了,寫法和jQuery的ajax一樣都是在嵌套藐不。此時就需要用到generator函數(shù)匀哄。

11,generator-生成器

是一個特殊的函數(shù)雏蛮,普通函數(shù)一路執(zhí)行到底涎嚼,generator函數(shù)中間可以停止,使用關(guān)鍵字yield
適用場景:當(dāng)我們發(fā)起請求1后的結(jié)果作為請求2的參數(shù)再發(fā)起請求挑秉,請求2的結(jié)果要作為請求3的參數(shù)法梯。使用generator就可以優(yōu)雅的寫成同步式的代碼,避免多層嵌套犀概。但是這個生成器使用的時候要借助外部庫runner立哑。ES7里面將這個函數(shù)改成了async await。使用時不再利用第三方庫或者封裝generator了姻灶☆醮拢可以優(yōu)雅的將異步的代碼寫成同步方式。
舉個栗子

function getCode(){
    return axios.get('json/code.json');
}
function getlist(params){
    return axios.get('json/person.json',{params})
}

getlist的Parmas參數(shù)要用到getcode請求的結(jié)果木蹬,常規(guī)做法如下:

function getFinal(){
      console.log("我是getFinal函數(shù)")
      getCode().then(function(res){
         if(res.data.code == 0){
               console.log(res.data.code);
                 var params = {
                      code:res.data.code
                  }
               getlist(params).then(function(res){
                    if(res.data.code == 0){
                         console.log(res.data.list);
                       }
                   })
                }
          })
      }
  getFinal();

但是使用async和await可以這樣寫:

async function getResult(){
            let code = await getCode();
            console.log(code.data.code);
            if(code.data.code == 0){
                var params = {
                    code:code.data.code
                }
                let list = await getlist(params);
                console.log(list.data.list);
            }
        }
getResult();

12至耻,set函數(shù)

Set是為了構(gòu)建某一類型對象,所以也叫構(gòu)造函數(shù)镊叁。 - 對象的實例化尘颓。

set本身的方法:

  • size()-對象的長度;
  • clear()-清空所有項晦譬;
  • delete(var)-清空某項值疤苹,不是下標;
  • add(var)-添加不重復(fù)的值敛腌;
  • has(var)-是否包含某項值卧土。

注意:可以鏈式調(diào)用

應(yīng)用:

數(shù)組去重惫皱,舉個栗子

let a = [2,1,2,1,3,5,6,5]
let b = new Set(a);
console.log(b)//[2,1,3,5,6]

但是這是一個set對象,不是數(shù)組尤莺,所以需要進行轉(zhuǎn)換

let c = [...b]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末旅敷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子颤霎,更是在濱河造成了極大的恐慌媳谁,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件友酱,死亡現(xiàn)場離奇詭異晴音,居然都是意外死亡,警方通過查閱死者的電腦和手機缔杉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門锤躁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人或详,你說我怎么就攤上這事系羞。” “怎么了霸琴?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵觉啊,是天一觀的道長。 經(jīng)常有香客問我沈贝,道長杠人,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任宋下,我火速辦了婚禮嗡善,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘学歧。我一直安慰自己罩引,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布枝笨。 她就那樣靜靜地躺著袁铐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪横浑。 梳的紋絲不亂的頭發(fā)上剔桨,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音徙融,去河邊找鬼洒缀。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的树绩。 我是一名探鬼主播萨脑,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饺饭!你這毒婦竟也來了渤早?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瘫俊,失蹤者是張志新(化名)和其女友劉穎蛛芥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體军援,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年称勋,在試婚紗的時候發(fā)現(xiàn)自己被綠了胸哥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡赡鲜,死狀恐怖空厌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情银酬,我是刑警寧澤嘲更,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站揩瞪,受9級特大地震影響赋朦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜李破,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一宠哄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嗤攻,春花似錦毛嫉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闯团,卻和暖如春辛臊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背房交。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工浪讳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涌萤。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓淹遵,卻偏偏與公主長得像口猜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子透揣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容