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

資訊專欄INFORMATION COLUMN

你該知道的ES6那些事兒

CoffeX / 3502人閱讀

摘要:最近重構(gòu)了一個(gè)項(xiàng)目,引入了部分用法,最大的感受是讓這門語(yǔ)言變得更加嚴(yán)謹(jǐn),更加方便。通過(guò)該方法獲得位置后還得比較一次才能判斷是否存在。再來(lái)看看的寫法使用數(shù)組來(lái)初始化一個(gè),構(gòu)造器能確保不重復(fù)地使用這些值。下面提供鏈接,供有興趣的朋友參考。

最近重構(gòu)了一個(gè)SPA項(xiàng)目,引入了部分ES6用法,最大的感受是ES6讓javascript這門語(yǔ)言變得更加嚴(yán)謹(jǐn),更加方便。本篇將結(jié)合實(shí)戰(zhàn)經(jīng)驗(yàn),對(duì)最常用的部分ES6語(yǔ)法進(jìn)行說(shuō)明,并對(duì)比ES6之前的做法,談?wù)勈褂肊S6的好處。
模板字面量

在es6之前,在js中拼接字符串,可以這樣:

let name = "es6"
let str = "Hello, " + name + "."

而在es6中,可以用使用反引號(hào)(`)來(lái)包裹普通字符串,如下:

let name = "es6"
let str = `Hello, ${name}.`

用來(lái)拼接變量時(shí)還是很方便的。

includes() 方法

在數(shù)組和字符串中,經(jīng)常會(huì)遇到這樣一個(gè)問(wèn)題:判斷該數(shù)組或字符串中是否存在某個(gè)值。
在ES6之前,可以這樣做:

let str = "abcdef"
console.log(str.indexOf("b") > -1)

這當(dāng)然沒(méi)有問(wèn)題,但是語(yǔ)義上顯得不夠直觀,indexOf()方法是獲得指定值的索引位置。通過(guò)該方法獲得位置后還得比較一次才能判斷是否存在。
我們?cè)賮?lái)看看ES6的作法:

let str = "abcdef"
console.log(str.includes("b"))

顯得更加清晰明了。但是,如果判斷某個(gè)值是否在數(shù)組或字符串中存在,那么includes方法是非常方便的,但如果要獲得某個(gè)值的索引位置,還是indexOf方法更合適。includes方法并不是indexOf方法的替代。
注意:和indexOf()一樣,includes()在數(shù)組和字符串中都可以使用。

擴(kuò)展運(yùn)算符 求最值

求最值是很常見的一個(gè)操作,我們先看看在ES6之前是怎么做的:

let arr = [25, 50, 999, 100]
console.log(Math.max.apply(Math, arr))

該方法是可行的,但使用 apply() 讓人覺(jué)得有一絲困惑,這里使用的額外語(yǔ)法混淆了代碼的真實(shí)意圖。
再看看ES6的寫法:

// Math.max() 不允許傳入數(shù)組
// 所以我們用擴(kuò)展運(yùn)算符把數(shù)組中的值展開成多個(gè)獨(dú)立的值,再傳入
console.log(Math.max(...arr))

這樣的代碼是不是看起來(lái)清晰多了?并且擴(kuò)展運(yùn)算符還可以與其他參數(shù)混用,比如:

console.log(Math.max(...arr, 1000, 888))
數(shù)組去重

這是一個(gè)很高頻的面試問(wèn)題,ES6之前,可以這樣:

function unique(arr) {
  let temp = []
  for (let i = 0; i < arr.length; i++) {
    if (temp.includes(arr[i]) === false) {
      temp.push(arr[i])
    }
  }
  return temp
}

let numbers = [2, 2, 3, 6, 2, 3, 5]
console.log(unique(numbers))

當(dāng)然數(shù)組去重有多種寫法,我這里只列舉一個(gè),供大家參考。
再來(lái)看看es6的寫法:

let arr = [2, 2, 3, 6, 2, 3, 5]
arr = [...new Set(arr)]
console.log(arr)

使用數(shù)組來(lái)初始化一個(gè)Set,Set構(gòu)造器能確保不重復(fù)地使用這些值。很明顯,es6的寫法更簡(jiǎn)潔明了。

Vuex中的使用
export default {
  computed: {
    // 使用對(duì)象展開運(yùn)算符將 getter 混入 computed 對(duì)象中
    ...mapGetters([
      "doneTodosCount",
      "anotherGetter"
    ])
  }
}

用過(guò)vuex的應(yīng)該熟悉這樣一段代碼,這里運(yùn)用擴(kuò)展運(yùn)算符配合mapGetters 輔助函數(shù),會(huì)將上面代碼解析成如下形式:

export default {
  computed: {
    doneTodosCount () {},
    anotherGetter () {}
  }
}
對(duì)象的簡(jiǎn)寫

現(xiàn)有一個(gè)對(duì)象構(gòu)造函數(shù),其返回一個(gè)對(duì)象,對(duì)象中包含屬性和值,在es6之前,寫法如下:

function createPerson (name, age) {
  return {
    name: name,
    age: age
  }
}

es6提供了簡(jiǎn)寫方式,當(dāng)對(duì)象的一個(gè)屬性名稱與本地變量名相同時(shí),你可以簡(jiǎn)單書寫名稱而省略冒號(hào)與值。可以這樣:

function createPerson (name, age) {
  return {
    name,
    age
  }
}

這個(gè)特性在vue單文件組件中會(huì)常常遇到,比如:

components: {
  otherComponent
}
方法的簡(jiǎn)寫

現(xiàn)有一個(gè)對(duì)象,對(duì)象中有一個(gè)方法,在es6之前,方法可以這樣寫:

var person = {
  name: "foo",
  sayName: function () {
    console.log(this.name)
  }
}

es6提供了簡(jiǎn)寫方法的寫法,通過(guò)省略冒號(hào)與function關(guān)鍵字,你可以這樣:

var person = {
  name: "foo",
  sayName () {
    console.log(this.name)
  }
}
延伸閱讀

本文只列出了部分es6語(yǔ)法,對(duì)于有些特性,如promise,箭頭函數(shù),await等,在我的項(xiàng)目中也會(huì)頻繁使用,但網(wǎng)上有很好的文章,就不細(xì)說(shuō)了。下面提供鏈接,供有興趣的朋友參考。
大白話講解Promise
ECMAScript 6 入門
理解 JavaScript 的 async/await

參考資料

ECMAScript 6 入門
Understanding ECMAScript 6

小結(jié)

ES6讓js這門語(yǔ)言變得更加精細(xì),更加強(qiáng)大。雖然不是非得掌握es6才能編程,但是掌握部分特性能提高開發(fā)效率。何樂(lè)而不為呢?這些都是我在項(xiàng)目中的使用心得,本文就當(dāng)拋磚了。

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

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

相關(guān)文章

  • 2019前端面試那些事兒

    摘要:雖然今年沒(méi)有換工作的打算但為了跟上時(shí)代的腳步還是忍不住整理了一份最新前端知識(shí)點(diǎn)知識(shí)點(diǎn)匯總新特性,語(yǔ)義化瀏覽器的標(biāo)準(zhǔn)模式和怪異模式和的區(qū)別使用的好處標(biāo)簽廢棄的標(biāo)簽,和一些定位寫法放置位置和原因什么是漸進(jìn)式渲染模板語(yǔ)言原理盒模型,新特性,偽 雖然今年沒(méi)有換工作的打算 但為了跟上時(shí)代的腳步 還是忍不住整理了一份最新前端知識(shí)點(diǎn) 知識(shí)點(diǎn)匯總1.HTMLHTML5新特性,語(yǔ)義化瀏覽器的標(biāo)準(zhǔn)模式和怪...

    JeOam 評(píng)論0 收藏0
  • 2019前端面試那些事兒

    摘要:雖然今年沒(méi)有換工作的打算但為了跟上時(shí)代的腳步還是忍不住整理了一份最新前端知識(shí)點(diǎn)知識(shí)點(diǎn)匯總新特性,語(yǔ)義化瀏覽器的標(biāo)準(zhǔn)模式和怪異模式和的區(qū)別使用的好處標(biāo)簽廢棄的標(biāo)簽,和一些定位寫法放置位置和原因什么是漸進(jìn)式渲染模板語(yǔ)言原理盒模型,新特性,偽 雖然今年沒(méi)有換工作的打算 但為了跟上時(shí)代的腳步 還是忍不住整理了一份最新前端知識(shí)點(diǎn) 知識(shí)點(diǎn)匯總1.HTMLHTML5新特性,語(yǔ)義化瀏覽器的標(biāo)準(zhǔn)模式和怪...

    QLQ 評(píng)論0 收藏0
  • 【回顧九月份第二周】 前端你該知道事兒

    摘要:順便一說(shuō),這首歌的原唱是秋田,中島當(dāng)年嗓子壞了,才有這歌。中文是直接翻譯來(lái)的,作曲是秋田。一部電影春夏秋冬又一春春夏秋冬又一春是由金基德執(zhí)導(dǎo),金英民吳英秀金基德主演的一部韓國(guó)電影。年月日于韓國(guó)上映。 原鏈接: http://bluezhan.me/weekly/#/9-2 1、web前端 Angular vs. React vs. Vue: A 2017 comparison 9 S...

    sixgo 評(píng)論0 收藏0
  • 【回顧九月份第二周】 前端你該知道事兒

    摘要:順便一說(shuō),這首歌的原唱是秋田,中島當(dāng)年嗓子壞了,才有這歌。中文是直接翻譯來(lái)的,作曲是秋田。一部電影春夏秋冬又一春春夏秋冬又一春是由金基德執(zhí)導(dǎo),金英民吳英秀金基德主演的一部韓國(guó)電影。年月日于韓國(guó)上映。 原鏈接: http://bluezhan.me/weekly/#/9-2 1、web前端 Angular vs. React vs. Vue: A 2017 comparison 9 S...

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

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

0條評(píng)論

閱讀需要支付1元查看
<