筆記十五-前端基礎(chǔ)之ES6及其新特性

1.前端技術(shù)棧與后端技術(shù)棧的類(lèi)比

image.png

2.ES6是什么

ECMAScript 6.0(以下簡(jiǎn)稱(chēng) ES6)是 JavaScript 語(yǔ)言的下一代標(biāo)準(zhǔn)虱颗,已經(jīng)在 2015 年 6 月正式發(fā)布了沥匈。它的目標(biāo),是使得 JavaScript 語(yǔ)言可以用來(lái)編寫(xiě)復(fù)雜的大型應(yīng)用程序忘渔,成為企業(yè)級(jí)開(kāi)發(fā)語(yǔ)言高帖。
由于一些歷史原因,ES6 既是一個(gè)歷史名詞畦粮,也是一個(gè)泛指散址,含義是 5.1 版以后的 JavaScript 的下一代標(biāo)準(zhǔn)乖阵,涵蓋了 ES2015、ES2016预麸、ES2017 等等瞪浸,而 ES2015 則是正式名稱(chēng),特指該年發(fā)布的正式版本的語(yǔ)言標(biāo)準(zhǔn)吏祸。
ECMAScript是瀏覽器腳本語(yǔ)言的規(guī)范对蒲,而各種js語(yǔ)言,如JavaScript則是規(guī)范的具體實(shí)現(xiàn)贡翘,類(lèi)似于JDBC是標(biāo)準(zhǔn)蹈矮,各種驅(qū)動(dòng)如mysql則是實(shí)現(xiàn)
ES6文檔

3. ES6新特性

3.1 let聲明變量與var的區(qū)別

-var 聲明的變量往往會(huì)越域
-let聲明的變量有嚴(yán)格的局部作用域

{
var a = 1;
let b = 2;
}
console.log(a); // 1
console.log(b);//Uncaught ReferenceError: b is not defined

-var可以聲明多次
-let只能聲明一次

var m = 1;
        var m = 2;
        let n = 3;
        let n = 4;

        console.log(m);//2
        console.log(n);//Uncaught SyntaxError: Identifier 'n' has already been declared

-var 會(huì)變量提升
-let 不存在變量提升

        console.log(x);//undefined
        var x = 10;
        console.log(y);//Uncaught ReferenceError: Cannot access 'y' before initialization
        let y = 20;
3.2 const聲明常量(只讀變量)
        const a = 1;
        a = 0;//Uncaught TypeError: Assignment to constant variable.
3.3 結(jié)構(gòu)表達(dá)式

數(shù)組結(jié)構(gòu)

        //數(shù)組結(jié)構(gòu)
        let arr = [1,2,3];
        // 傳統(tǒng)賦值方式
        let a = arr[0];
        let b = arr[1];
        let c = arr[2];

        // es6
        let [a,b,c] = arr;

        console.log(a,b,c);

對(duì)象結(jié)構(gòu)

const person = {
            name: "abc",
            age:21,
            language: ["java","js","css"]
        }
        //傳統(tǒng)方式
        const name = person.name;
        const age = person.age;
        const language = person.language;
        //es6新特性
        const {name,age,language} = person
// 給name重命名
const {name:abc,age,language} = person
        console.log(name,age,language);
3.4 字符串?dāng)U展

A. 擴(kuò)展幾個(gè)API


image.png

B. 字符串模板


image.png

字符串插入變量和表達(dá)式,變量名寫(xiě)在${}中
image.png
3.5 函數(shù)

A. 給參數(shù)設(shè)置默認(rèn)值

        //es6以前鸣驱,無(wú)法給一個(gè)函數(shù)參數(shù)設(shè)置默認(rèn)值含滴,只能采用變通寫(xiě)法
        function add(a,b){
            b = b ||1;
            return a+b;
        }
        //只傳一個(gè)參數(shù)
        console.log(add(10));// 11

        //es6的寫(xiě)法,直接給參數(shù)寫(xiě)上默認(rèn)值丐巫,沒(méi)傳就會(huì)自動(dòng)使用默認(rèn)值
        function add2(a,b=1){
            return a+b;
        }

        console.log(add2(20));// 21

B. 給函數(shù)設(shè)置不定參數(shù)

// 不定參數(shù)
        function fun(...values){
            console.log(values.length);
        }

        console.log(fun(1,2));//2
        console.log(fun(1,2,3));//3

C. 箭頭函數(shù)

 //箭頭函數(shù)
        //es6以前的聲明方法
        var print = function (obj){
            console.log(obj);
        }
        // es6 
        var print = obj => console.log(obj);

        print("hello");
       //------------------------------
        // 多參數(shù)
         //es6以前
        var sum = function(a,b){
            return a+b;
        }
        //es6
        var sum2 = (a,b) => a+b;

        console.log(sum2(1,2));

        //es6以前
        var sum3 = function(a,b){
            c = a+b;
            return a+c;
        }

        //es6
        var sum4 = (a,b) => {
            c = a+b;
            return a+c;
        };

        console.log(sum4(1,2));

D. 箭頭函數(shù)+解構(gòu)

        // 箭頭函數(shù)+解構(gòu)
        const person = {
            name: "abc",
            age:21,
            language: ["java","js","css"]
        }
        // 常規(guī)方式
        var fun1 = (param) => console.log("hello,"+param.name);
        // 箭頭函數(shù)+解構(gòu)方式
        var fun2 = ({name}) => console.log("hello,"+name);

        fun1(person);
        fun2(person);
3.6 對(duì)象優(yōu)化

A. 新增許多新方法


image.png

B. 聲明對(duì)象簡(jiǎn)寫(xiě)

const age = 23;
        const name = "zhangshan";
        //傳統(tǒng)聲明對(duì)象方式
        const person = {name:name,age:age}
        //es6
        const person1 = {name,age}

C. 對(duì)象的函數(shù)屬性簡(jiǎn)介


image.png

D.對(duì)象擴(kuò)展運(yùn)算符


image.png
3.7 map、reduce方法

A. map方法


image.png

B. reduce方法


image.png

image.png
3.8 Promise
image.png

傳統(tǒng)的代碼
image.png

使用Promise優(yōu)化


image.png
promise進(jìn)一步封裝
image.png
3.9模塊化

A. 概念
image.png

B. import導(dǎo)入


image.png

C. export導(dǎo)出
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勺美,一起剝皮案震驚了整個(gè)濱河市递胧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赡茸,老刑警劉巖缎脾,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異占卧,居然都是意外死亡遗菠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)华蜒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)辙纬,“玉大人,你說(shuō)我怎么就攤上這事叭喜『丶穑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵捂蕴,是天一觀的道長(zhǎng)譬涡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)啥辨,這世上最難降的妖魔是什么涡匀? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮溉知,結(jié)果婚禮上陨瘩,老公的妹妹穿的比我還像新娘腕够。我一直安慰自己,他們只是感情好拾酝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布燕少。 她就那樣靜靜地躺著,像睡著了一般蒿囤。 火紅的嫁衣襯著肌膚如雪客们。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天材诽,我揣著相機(jī)與錄音底挫,去河邊找鬼。 笑死脸侥,一個(gè)胖子當(dāng)著我的面吹牛建邓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播睁枕,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼官边,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了外遇?” 一聲冷哼從身側(cè)響起注簿,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跳仿,沒(méi)想到半個(gè)月后诡渴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡菲语,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年妄辩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片山上。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡眼耀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出佩憾,到底是詐尸還是另有隱情畔塔,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布鸯屿,位于F島的核電站澈吨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏寄摆。R本人自食惡果不足惜谅辣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望婶恼。 院中可真熱鬧桑阶,春花似錦柏副、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至萎河,卻和暖如春荔泳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背虐杯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工玛歌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人擎椰。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓支子,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親达舒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子值朋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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