站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

es6新增加的數(shù)據(jù)類型有是什么

es6新增加的數(shù)據(jù)類型:1、Symbol類型;2、Set類型;3、Map類型;4、WeakSet類型;5、WeakMap類型;6、TypedArray類型。

es6新增加的數(shù)據(jù)類型有是什么

本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

ES6新增的數(shù)據(jù)類型

  • Symbol 類型(基本)
  • Set 類型(復(fù)雜)
  • Map 類型(復(fù)雜)
  • WeakSet 類型(復(fù)雜)
  • WeakMap 類型(復(fù)雜)
  • TypedArray 類型(復(fù)雜)

我們再來看一看 es6 之前有哪些數(shù)據(jù)類型,

  • 基本類型:

    • string

    • null

    • undefined

    • number

    • boolean

  • 復(fù)雜類型:

    • object

由于新出的類型在平常工作中基本用不到,所以具體介紹還是直接看 MDN 的專業(yè)解釋把,下面給大家講解一些面試經(jīng)常遇到的問題….

Q1:怎么讓一個對象具有一個私有屬性?(Symbol有什么用?)

Answer:用 Symbol 作為對象的 key 即可

{ // 私有作用域   let a = Symbol()   window.oo = {     name: '對象',     age: 18,     [a]: '這是一個私有屬性'   }   console.log(oo[a]) // 這是一個私有屬性 } // 不能再作用域外打印...

此時對象 oo 就有一個私有屬性,該屬性在作用域外就無法正確打印。

es6新增加的數(shù)據(jù)類型有是什么

Q2:怎么快速去重一個數(shù)組?

Answer:用 SetArray.form()
這是一道很經(jīng)典的面試題,在此之前先講講 es6 之前的去重方法:

let array = [1, 2, 3, 4, 4, 5, 5, 6] ~function uniq() {   let result = []   let hash = {}   for (let i=0; i<array.length; i++) {     hash[array[i]] = true   }   for (let key in hash) {     result.push(key)   }   console.log(result)   return result }()

es6新增加的數(shù)據(jù)類型有是什么

但是該方法有巨大的弊端,去重數(shù)組中不能有對象,而且該方法返回的結(jié)果中都是字符串,所以無法對這樣的數(shù)組進(jìn)行去重。

當(dāng)我們使用 Set

let a = {a: 11} let array = [0, 1, '1', '22', 22, a, a, 66] ~function uniq() {   return Array.from(new Set(array)) // 裝比寫法 [... new Set(array)] }()

es6新增加的數(shù)據(jù)類型有是什么

甚至連對象的引用也能去重,很簡略的方法。

Q3:Map有啥用?

Answer:map 更像是對象的拓展,他的 key 可以是任意類型,不再像之前的對象 key 只能是字符串,也就是這個特性,我們可以去優(yōu)化之前的去重,但是也沒有必要,因為已經(jīng)有 set 了。

舉個栗子

let myMap = new Map()   let keyObj = {} let keyFunc = function () {} let keyString = "a string"   // 添加鍵 myMap.set(keyString, "和鍵'a string'關(guān)聯(lián)的值"); myMap.set(keyObj, "和鍵keyObj關(guān)聯(lián)的值"); myMap.set(keyFunc, "和鍵keyFunc關(guān)聯(lián)的值");

es6新增加的數(shù)據(jù)類型有是什么

Q4:WeakMap 和 Map 的區(qū)別?

Answer:

  • WeakMap 區(qū)別就是對 key 的引用是弱引用

  • WeakMapkey 只能是對象

需要了解的就是弱引用是啥了:
文章:ES2015 WeakMap的學(xué)習(xí)和使用

Q5:WeakSet 和 Set 的區(qū)別?

Answer:同上

Q6:TypedArray 有什么用?

Answer:這個類型用的途徑更少了,主要用于二進(jìn)制文件(音頻,文件,視頻,圖片…)的處理,一般用不到,除非你自己開發(fā)輪子。

【推薦學(xué)習(xí):javascript高級教程】

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久免费精品一区二区| 日韩在线免费看网站| 91久久精品视频| 久久99精品视免费看| 国产中文在线亚洲精品官网| 精品一区二区三区AV天堂| 国产在热线精品视频| 夜精品a一区二区三区| www.国产精品.com| 国产精品亚洲综合五月天| 久久99精品久久久久婷婷| 国产成人精品2021| 久久精品国产福利国产秒| 热99RE久久精品这里都是精品免费| 国产成人精品免高潮在线观看| 日韩在线视频网址| 久久精品国产亚洲av日韩 | 日韩综合无码一区二区| 国产精品怡红院在线观看| 日韩精品人妻系列无码av东京| 人妻少妇偷人精品视频| 亚洲精品无码av片| 亚洲AV无码成人精品区狼人影院| .精品久久久麻豆国产精品 | 国产热re99久久6国产精品| 精品伊人久久久香线蕉| 欧洲精品一卡2卡三卡4卡乱码| 大伊香蕉在线精品不卡视频| 精品少妇人妻AV无码专区不卡| 久草热8精品视频在线观看| 精品无码久久久久久国产| 99亚洲乱人伦aⅴ精品| 精品国产一区二区三区免费看| 精品久久久BBBB人妻| 国产精品久久久久一区二区| 免费国产精品视频| 日韩乱码人妻无码系列中文字幕 | 日韩精品久久久久久免费| 99国产精品视频久久久久| 亚洲熟妇无码久久精品| 亚洲国产日韩综合久久精品|