Es6新增語法梳理

這兩天項目上線玛痊,手頭工作忙完了赴恨,忽然想起來面試的時候總會問到
ES6有哪些新增的語法,你了解多少箕憾?

梳理梳理吧牡借!

1.let const

現(xiàn)在項目中我已經(jīng)基本上不會使用 var 來聲明變量了,

let const 與 var 的區(qū)別:

  • let const 有自己的作用域 ----- var 是全局聲明
  • let const 沒有變量提升 ----- var 有變量提升
  • 同一作用域下 let const 不可以多次聲明同一個變量 ----- var 可以多次聲明同一個變量
  • let const 存在暫存死區(qū) ----- var 不存在
const
  • 一旦聲明必須賦值
  • 賦值基礎(chǔ)數(shù)據(jù)類型之后不可更改
  • 賦值復(fù)合數(shù)據(jù)類型可更改其屬性

2.擴展運算

const arr1 = [1, 2, 3]
const arr2 = [4, 5, 6]

const arr3 = [...arr1, ...arr2]
// 輸出  [1,2,3,4,5,6]

3.模板字符串

const str = '雷'

console.log(`我姓${str}`)
// 輸出  我姓雷

4.Object.keys

此方法可以獲得所有對象的key袭异,返回數(shù)組包含所有對象的key

const obj = {
  name:'lei'钠龙,
  age:'18'
}
const keys = Object.keys(obj)
console.log(keys)

// 輸出 [name, age]

5.箭頭函數(shù)

const fn = () => {}

// 如果只有一個參數(shù),可以省略括號
const fn = name => {}

// 如果函數(shù)體里只有一句return 可簡寫為
const fn = name => 2 * name

// 如果返回的是對象
const fn = name => ({ name: name })
  • 箭頭函數(shù)沒有自己的 this 指向,this 指向由其上下文確定
  • 箭頭函數(shù)沒有原型對象
  • 箭頭函數(shù)是匿名函數(shù) 不能作為構(gòu)造函數(shù)碴里,不能使用new
  • 箭頭函數(shù)不綁定arguments沈矿,用展開運算符...解決(第六點 ↓ )

6.剩余參數(shù)

有時候不確定會給函數(shù)中傳入多少個參數(shù),可以使用展開運算符

function fn ( ...params) {
  console.log(params)
}
fn(1,2,3,4,5,6)

// 輸出   [1,2,3,4,5,6]

7.默認參數(shù)

function fn(name="lei", age=18) {
  console.log(name,age)
}

fn()
// 輸出  lei,18

fn('yang', 20)
// 輸出 yang,20

8.forEach, map, filter, some, every

這些都是ES6遍歷數(shù)組的方法咬腋,但是有一些不同處羹膳,

forEach
const Aarr = [1, 2, 3, 4, 5]

// 三個參數(shù):遍歷項 索引 數(shù)組本身
Aarr.forEach((item, index, arr) => {
  console.log(item, index, arr)
})

// 輸出:
1 0 [ 1, 2, 3, 4, 5 ]
2 1 [ 1, 2, 3, 4, 5 ]
3 2 [ 1, 2, 3, 4, 5 ]
4 3 [ 1, 2, 3, 4, 5 ]
5 4 [ 1, 2, 3, 4, 5 ]
map

用于處理數(shù)據(jù)過后返回一個新數(shù)組

const mapArr = [1, 2, 3, 4, 5]

// 三個參數(shù):遍歷項 索引 數(shù)組本身
// 對每一項減1
const mapArr2 = mapArr.map((num, index, arr) =>  num - 1)
console.log(mapArr2)

// 輸出:
[ 0, 1, 2, 3, 4 ]
filter

用來過濾的方法
const filterArr = [1, 2, 3, 4, 5]

// 三個參數(shù):遍歷項 索引 數(shù)組本身
// 返回大于3
const filterArr2 = filterArr.filter((num, index, arr) => num > 3)
console.log(filterArr2)

// 輸出:
[ 4, 5 ]

some

只要有一個是真,就返回真

const someArr = [true, false, true, false]

// 三個參數(shù):遍歷項 索引 數(shù)組本身
// 只要有一個為true根竿,就返回true陵像,一個都true都沒有,就返回false
const someArr2 = someArr.some((bol, index, arr) => bol)
console.log(someArr2)

// 輸出
true
every

every與some是相反的寇壳,every要每一項為真才返回真

const everyArr = [false, true, false, true, false]

// 三個參數(shù):遍歷項 索引 數(shù)組本身
// 所有為true醒颖,才返回true,否則返回false
const everyArr2 = everyArr.every((bol, index, arr) => bol)
console.log(everyArr2)

// 輸出
false

9.reduce

  • 第一個參數(shù)callback函數(shù): pre為上次return的值壳炎,next為數(shù)組的本次遍歷的項
  • 第二個參數(shù)為初始值图贸,也是第一個pre
// 計算 1 + 2 + 3 
const reduceArr = [1, 2, 3]
const sum = reduceArr.reduce((pre, next) => {
  return pre + next
}, 0)
console.log(sum) // 6

10.對象屬性同名簡寫

const name = 'lei'
const age = '18'

const obj = {
  name,
  age
}

console.log(obj) // { name: 'lei', age: '18' }

11.解構(gòu)賦值

提取對象里的屬性,對象解構(gòu)

const obj = {
  name: 'lei',
  age: 18,
  hobby: {
    one: 'basketball',
  }
}

const { name, age } = obj
console.log(name, age) // lei 18

// 解構(gòu)重名
const { name: myname } = obj
console.log(myname) // lei

// 嵌套解構(gòu)
const { hobby: { one } } = obj
console.log(one) // basketball

數(shù)組的解構(gòu)

const arr = [1, 2, 3]

const [a, b, c] = arr
console.log(a, b, c) // 1 2 3

// 默認賦值
const [a, b, c, d = 4] = arr
console.log(a, b, c, d) // 1 2 3 4

// 亂序解構(gòu)
const { 1: a, 0: b, 2: c } = arr
console.log(a, b, c) // 2 1 3

12.Object.values

獲取對象 value 值的集合

const obj = {
  name: 'lei',
  age: 18
}

const values = Object.values(obj)
console.log(values) // ['lei', 18 ]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市冕广,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌偿洁,老刑警劉巖撒汉,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涕滋,居然都是意外死亡睬辐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門宾肺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溯饵,“玉大人,你說我怎么就攤上這事锨用》峥” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵增拥,是天一觀的道長啄巧。 經(jīng)常有香客問我,道長掌栅,這世上最難降的妖魔是什么秩仆? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮猾封,結(jié)果婚禮上澄耍,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好齐莲,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布痢站。 她就那樣靜靜地躺著,像睡著了一般铅搓。 火紅的嫁衣襯著肌膚如雪瑟押。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天星掰,我揣著相機與錄音多望,去河邊找鬼。 笑死氢烘,一個胖子當著我的面吹牛怀偷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播播玖,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼椎工,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜀踏?” 一聲冷哼從身側(cè)響起维蒙,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎果覆,沒想到半個月后颅痊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡局待,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年斑响,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钳榨。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡舰罚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出薛耻,到底是詐尸還是另有隱情营罢,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布昭卓,位于F島的核電站愤钾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏候醒。R本人自食惡果不足惜能颁,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倒淫。 院中可真熱鬧伙菊,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至兴枯,卻和暖如春血淌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背财剖。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工悠夯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人躺坟。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓沦补,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咪橙。 傳聞我的和親對象是個殘疾皇子夕膀,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

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

  • 技術(shù)交流QQ群:1027579432,歡迎你的加入美侦! 歡迎關(guān)注我的微信公眾號:CurryCoder的程序人生 1....
    CurryCoder閱讀 332評論 0 3
  • 1. 什么是 ES6 ES 全稱 ECMAScript产舞,它是由 ECMA 國際化標準組織制定的一項腳本語言的標準化...
    青年心路閱讀 1,943評論 0 0
  • let(★★★) ES6中新增了用于聲明變量的關(guān)鍵字 let聲明的變量只在所處于的塊級有效 注意:使用let關(guān)鍵字...
    過盡千帆_YL閱讀 688評論 0 11
  • (一)let和const 1.let let 定義變量,變量不可以再次定義菠剩,但可以改變其值 代碼舉栗: 具有塊級作...
    CNLISIYIII閱讀 13,562評論 0 11
  • let塊級作用域 怎么樣更好的認識let;就是現(xiàn)有的聲明方式進行比較庞瘸; 1:var的聲明提升會在未初始化變量的時候...
    吳高亮閱讀 1,415評論 0 1