国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

es6特性介紹(上)

DevWiki / 1457人閱讀

這是一篇專門(mén)介紹es6特性的文章,文章寫(xiě)的非常棒,全文通過(guò)代碼示例像我們展示了es6的特性,雖然全英文但是用的都是很基礎(chǔ)的單詞,即使因?yàn)椴辉趺春玫耐瑢W(xué)依然能看懂,我這里將其翻譯過(guò)來(lái)有2個(gè)目的,1是加深自己的記憶,2是做個(gè)備份。我這里翻譯是按照我理解的進(jìn)行翻譯,并非"直譯"。如有不當(dāng)之處歡迎指正。

箭頭函數(shù)
實(shí)踐中使用
    // jquery中
    $(".class").bind("click",e=>{
        console.log(e);
    })
    $.ajax({
        url:"/api/**/*",
        type:"POST",
        data:{
        },
        success:(data, textStatus,jqXHR)=>{
            // response data
        },
        error:err=>{
            // http error
        },
        comp
    })
    // 在react中
    export default ()=>(
這是一個(gè)最簡(jiǎn)單的組件
); export default ()=>{ return
hello
}
箭頭函數(shù)不綁定this
    const persion = {
        name:"小明",
        arrowGetName:()=>this.name,
        regularGetName:function(){
            return this.name
        },
        arrowThis:()=>this,
        regularThis:function(){
            return this;
        }
    }
    // 執(zhí)行結(jié)果,
    persion.name;                    // 輸出:"小明"
    persion.arrowGetName();          // 拋出異常,"Cannot read property "name" of undefined"
    persion.regularGetName();        // 輸出:"小明"
    persion.arrowThis();             // 輸出:undefined
    persion.regularThis();           // 輸出:persion對(duì)象
    // 說(shuō)明:如果基于執(zhí)行上下文是window,那么輸出結(jié)果會(huì)有不同
箭頭函數(shù)不綁定this,但是可以直接使用上下文的this,更加方便
const getName = function(){
    let name = "getName func";
    setTimeout(()=>{
        console.log(this.name);
    },1000)
}
// 執(zhí)行結(jié)果
getName();
//1s delay "getName func"
classess

在其他語(yǔ)言中class的概念非常明確,特別是那些面向?qū)ο蟮木幊陶Z(yǔ)言中,例如:java;在javascriptclass只是基于原型集成的一個(gè)高級(jí)語(yǔ)法糖,也就是說(shuō)語(yǔ)法經(jīng)過(guò)編譯之后,是通過(guò)prototype實(shí)現(xiàn)的。

實(shí)踐使用
class Persion {
  static version=13
  static getVersion(){
    return this.version;
  }
  constructor(name,age){
    this.name = name;
    this.age = age;
    this.level = 0;
  }
  updateLevel(newLevel){
    this.level = newLevel;
  }
}
class Student extends Persion {
  constructor(name,age){
    super(name,age);
  }
  get levelT(){
    return `${this.level}:from XiaoMing`
  }
  set levelUpdate(level){
    this.level =level;
  }
  updateLevel(newLevel){
    super.updateLevel(newLevel);
  }
}

const tom = new Student("hello");

console.log(tom.level); // 0
console.log(tom.levelT); // 0:from XiaoMing
tom.levelUpdate = 2; 
console.log(tom.levelT); // 2:from XiaoMing
tom.updateLevel(3);
console.log(tom.levelT);  // 3:from XiaoMing
增強(qiáng)的對(duì)象字面量
const customProtoObj = {
  toString:function(){
    return "the customProtoObj To string"
  }
}
const handler = ()=>"handler";
const obj = {
  // 直接指定重定義原型鏈
  __proto__:customProtoObj,
  // 屬性賦值的簡(jiǎn)約寫(xiě)法
  handler,
  // 重定義 對(duì)象的toString 方法
  toString(){
    return `d:${super.toString()}`;
  },
  // 動(dòng)態(tài)屬性名稱,這是最大的特性了
  ["prop_"+(()=>42)()]:42,
}

console.log(obj.handler)
console.log(obj.handler())
console.log(obj.toString())
console.log(obj.prop_42)

這個(gè)特性非常給力,特別是動(dòng)態(tài)屬性,在實(shí)踐開(kāi)發(fā)中真的是屢試不爽

字符串插值表達(dá)式,或者叫做字符串模版
    // 以前的字符串拼接只能通過(guò)加號(hào) 完成
    let str = "hello";
    let str1 = "world"
    let strEnd = "end"+str+str1;
    // 使用該特性進(jìn)行重構(gòu)
    let strEndEs6 = `end${str}${str1}`;
    // 函數(shù)調(diào)用
    const getStr = ()=>`from getStr func:${str}`;
    let strEndFun = `from func ${getStr()}`
數(shù)據(jù)解構(gòu)

這是一個(gè)超強(qiáng)的特性,讓我們前端處理后端接口數(shù)據(jù)的時(shí)候游刃有余(特別是遇到,那種后端 <..>)

    // 1.數(shù)組解構(gòu)
    let [a,,b] = [1,2,3];
    console.log(a,b);// 1,3
    // 2. 對(duì)象解構(gòu)
    const data = ()={name:"tom",age:18};
    let {name:a,age} = data();
    console.log(a,age);// "tom",18
    // 這種對(duì)象的解構(gòu),如果你用過(guò)當(dāng)前流行的幾個(gè)框架:react、vue、ng2,這種解構(gòu)隨處可見(jiàn)
    import {render} from "react-dom"; // 這里的render就是解構(gòu)出來(lái)的
    // 3. 在形參中使用
    function update({name:x}){
        console.log(x);
    }
    function update2({name}){
        console.log(name)
    }
    update({name:"tom"}); // "tom’
    update2({name:"tom2"}); // "tom2"
設(shè)置默認(rèn)值
    // 1.形參默認(rèn)值
    function f(x, y=12) {
      return x + y;
    }
    console.log(f(3))
    // 2.對(duì)象默認(rèn)值
    const p = {name:"123",age:18};
    let {name,age,level=123} = p;
    console.log(level); // 123
... 語(yǔ)法糖(可以翻譯為數(shù)據(jù)傳播)
    // 1. 形參中使用
    function f(x,y,z){
        return x+y+z;
    }
    let params = [1,2,3];
    f(...params); //他還把數(shù)組的每個(gè)元素作為參數(shù)傳遞過(guò)去
    // 上面的通過(guò)es5的方式編寫(xiě)如下
    f.apply(undefined, [1, 2, 3, 4]);
    // 2. 數(shù)組中使用
    const arr1 = [1,2,"h"];
    const arr2 = [2,3,...arr1,4,5];
    // 上面通過(guò)es5的方式
    arr2 = [2,3].concat(arr1,[4,5]);
    // 3. 在對(duì)象字面量中使用
    let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
    console.log(x); // 1
    console.log(y); // 2
    console.log(z); // { a: 3, b: 4 }
    
    // Spread properties
    let n = { x, y, ...z };
    console.log(n); // { x: 1, y: 2, a: 3, b: 4 }
    console.log(obj)
    
Rest形參

這個(gè)特性讓我們可以不去現(xiàn)在形參的個(gè)數(shù),使我們?cè)诰帉?xiě)功能的時(shí)候更加靈活,代碼的擴(kuò)展性也增強(qiáng)很多

function demo(part1, ...part2) {
    return {part1, part2}
}
console.log(demo(1,2,3,4,5,6))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/90556.html

相關(guān)文章

  • ES6 走馬觀花(ECMAScript2015 新特性

    摘要:字面上是生成器的意思,在里是迭代器生成器,用于生成一個(gè)迭代器對(duì)象。當(dāng)執(zhí)行的時(shí)候,并不執(zhí)行函數(shù)體,而是返回一個(gè)迭代器。迭代器具有方法,每次調(diào)用方法,函數(shù)就執(zhí)行到語(yǔ)句的地方。也有觀點(diǎn)極力反對(duì),認(rèn)為隱藏了本身原型鏈的語(yǔ)言特性,使其更難理解。 本文為 ES6 系列的第一篇。旨在給新同學(xué)一些指引,帶大家走近 ES6 新特性。簡(jiǎn)要介紹: 什么是 ES6 它有哪些明星特性 它可以運(yùn)行在哪些環(huán)境 ...

    wangzy2019 評(píng)論0 收藏0
  • 【W(wǎng)eb全棧課程二】ES6特性介紹

    摘要:原因中,定義的變量沒(méi)有塊級(jí)作用域,在第一個(gè)中循環(huán)后已經(jīng)是,里面的執(zhí)行的時(shí)候彈出的就是。 ES6特性介紹(上) ECMAScript(簡(jiǎn)稱ECMA、ES),ES6也被稱為ECMAScript 2015JavaScript是ECMAScript的一種,但是目前實(shí)現(xiàn)ECMAScript標(biāo)準(zhǔn)的僅JavaScript ES6新的標(biāo)準(zhǔn),新的語(yǔ)法特征:1、變量/賦值2、函數(shù)3、數(shù)組/json4、字符...

    kevin 評(píng)論0 收藏0
  • 【W(wǎng)eb全棧課程三】ES6特性介紹(下)

    摘要:示例運(yùn)行函數(shù)彈出彈出函數(shù)接收參數(shù),返回值。其中,返回一個(gè)對(duì)象,是的返回值,代表函數(shù)是否執(zhí)行完成。 ES6特性介紹(下) ES6新的標(biāo)準(zhǔn),新的語(yǔ)法特征:1、變量/賦值2、函數(shù)3、數(shù)組/json4、字符串5、面向?qū)ο?、Promise7、generator8、ES7:async/await 《【W(wǎng)eb全棧課程二】ES6特性介紹(上)》見(jiàn):https://segmentfault.com/a...

    wangshijun 評(píng)論0 收藏0
  • 你需要了解的ES6的新特性(前沿技術(shù))

    摘要:年月,的創(chuàng)造者公司,決定將提交給國(guó)際標(biāo)準(zhǔn)化組織,希望這種語(yǔ)言能夠成為國(guó)際標(biāo)準(zhǔn)。這表示外層代碼塊不受內(nèi)層代碼塊的影響。也可以運(yùn)用于函數(shù)及其他文中就簡(jiǎn)單介紹這么多,想更加了解新特性的可以自尋查看一下阮一峰的一本入門(mén) ES6新特性 最近在項(xiàng)目中遇到了很多ES6的語(yǔ)法,遇到了不少坑坑洼洼,因此,在這里就簡(jiǎn)單介紹一下ES6中的一些新特性 如果想真正的了解ES6和ES5有什么不同,這里推薦看一下...

    Nino 評(píng)論0 收藏0
  • ES6-7

    摘要:的翻譯文檔由的維護(hù)很多人說(shuō),阮老師已經(jīng)有一本關(guān)于的書(shū)了入門(mén),覺(jué)得看看這本書(shū)就足夠了。前端的異步解決方案之和異步編程模式在前端開(kāi)發(fā)過(guò)程中,顯得越來(lái)越重要。為了讓編程更美好,我們就需要引入來(lái)降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(shū)(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書(shū)的目的是以目前還在制定中的ECMASc...

    mudiyouyou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<