摘要:一將語(yǔ)法擴(kuò)展為超集動(dòng)機(jī)聲稱是一個(gè)子集,但是因?yàn)橐呀?jīng)有詳細(xì)記錄這是不正確的,因?yàn)樽址梢园崔D(zhuǎn)義的和字符,而字符串則不能二對(duì)進(jìn)行了語(yǔ)法更改,允許中不寫捕獲動(dòng)機(jī)此提議引入的語(yǔ)法更改允許省略綁定其周圍的括號(hào)原寫法嘗試使用可能無(wú)法實(shí)現(xiàn)的功能支
一、JSON superset
將ECMA-262語(yǔ)法擴(kuò)展為JSON超集
動(dòng)機(jī)ECMAScript聲稱JSON是一個(gè)子集JSON.parse,但是(因?yàn)橐呀?jīng)有詳細(xì)記錄)這是不正確的,因?yàn)镴SON字符串可以包含未轉(zhuǎn)義的U + 2028 LINE SEPARATOR和U + 2029 PARAGRAPH SEPARATOR字符,而ECMAScript字符串則不能
二、Optional catch binding對(duì)ECMAScript進(jìn)行了語(yǔ)法更改,允許catch中不寫error捕獲
動(dòng)機(jī)此提議引入的語(yǔ)法更改允許catch省略綁定其周圍的括號(hào)
原寫法
try { // 嘗試使用可能無(wú)法實(shí)現(xiàn)的Web功能 } catch (unused) { // 支持可能無(wú)法實(shí)現(xiàn)的web功能情況 }
以后可以這樣寫
try { // do something } catch { // }三、Symbol.prototype.description
新增一個(gè)Symbol.prototype.description方法,是一個(gè)只讀屬性,它會(huì)返回 Symbol 對(duì)象的可選描述的字符串
demo
console.log(Symbol("desc").description); // expected output: "desc" console.log(Symbol.iterator.description); // expected output: "Symbol.iterator" console.log(Symbol.for("foo").description); // expected output: "foo" console.log(Symbol("foo").description + "bar"); // expected output: "foobar"四、Function.prototype.toString revision
新增一個(gè)Function.prototype.toString方法,返回一個(gè)表示當(dāng)前函數(shù)源代碼的字符串
1.語(yǔ)法
function.toString()
2.demo
const fun = (name) => { console.log(name) } fun.toString() // "(name) => { console.log(name) }"五、Object.fromEntries ———— 用于將鍵值對(duì)列表轉(zhuǎn)換為對(duì)象(兼容性有點(diǎn)差,chrome最新的beta版才支持)。
新增Object.fromEntries屬性,用于將鍵值對(duì)列表轉(zhuǎn)換為對(duì)象
1.語(yǔ)法
const newObject = Object.fromEntries(iterable);
iterable: 類似實(shí)現(xiàn)了可迭代協(xié)議 Array 或者 Map 或者其它對(duì)象的可迭代對(duì)象
2.demo
const newObject = Object.fromEntries([["a", 1], ["b", 2]]); // { a: 1, b: 2 } const map = new Map().set("a", 1).set("b", 2); const newObject1 = Object.fromEntries(map); // { a: 1, b: 2 }六、Well-formed JSON.stringify
防止JSON.stringify返回格式錯(cuò)誤的Unicode字符串的提議
七、String.prototype.{trimStart,trimEnd}新增String.prototype.trimStart和String.prototype.trimEnd屬性,移除空白字符,并返回一個(gè)新字符串
String.prototype.trimStart從一個(gè)字符串的開(kāi)端刪除空白字段,并返回一個(gè)新字符串
1.語(yǔ)法
str.trimStart();
2.demo
const str = " 我愿是豬 "; const newStr = str.trimStart(); // "我愿是豬 "String.prototype.trimEnd
從一個(gè)字符串的末端刪除空白字段,并返回一個(gè)新字符串
1.語(yǔ)法
str.trimEnd();
2.demo
const str = " 我愿是豬 "; const newStr = str.trimEnd(); // " 我愿是豬"八、Array.prototype.{flat,flatMap}
新增Array.prototype.flat和Array.prototype.flatMap屬性,對(duì)數(shù)組的內(nèi)含數(shù)組進(jìn)行展開(kāi)操作并返回一個(gè)新數(shù)組
Array.prototype.flat!參考資料
方法會(huì)按照一個(gè)可指定的深度遞歸遍歷數(shù)組,并將所有元素與遍歷到的子數(shù)組中的元素合并為一個(gè)新數(shù)組返回
1.語(yǔ)法
const newArray = arr.flat(depth)
depth: 需要展開(kāi)內(nèi)層數(shù)組的層數(shù),默認(rèn)為1
2.demo
展開(kāi)內(nèi)層數(shù)組
/** 默認(rèn)參數(shù): */ const array = [1, [2, [3]]]; const array1 = array.flat(); // [1, 2, [3]] /** 遞歸展平,直到數(shù)組不再包含嵌套數(shù)組: */ const arrayInfinity = array.flat(Infinity); // [1, 2, 3] /** 此處等同于 */ const array2 = array.flat(2);
移除空項(xiàng)
const array = [1, 2, , 3]; const arrayRemove = array.flat(); // [1, 2, 3]Array.prototype.flatMap
方法類似與Array.prototype.map,但是會(huì)展開(kāi)數(shù)組(只會(huì)展開(kāi)一層)
1.語(yǔ)法
const new_array = arr.flatMap((currentValue, index, array) => { // 返回新數(shù)組的元素 })
currentValue: 數(shù)組中正在處理的當(dāng)前元素
index: 正在處理元素的索引
array: 正在被處理素組
2.demo
const array = [1, 2, 3]; const new_array = array.flatMap(ele => [ele * 2]) // [2, 4, 6] const new_array2 = array.flatMap(ele => [[ele * 2]]) // [[2], [4], [6]]
gitub上修改
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103260.html
摘要:可選的語(yǔ)句中的有時(shí)候并沒(méi)有用,思考下面代碼使用瀏覽器可能尚未實(shí)現(xiàn)的功能這里回調(diào)函數(shù)中已經(jīng)幫我們處理好的錯(cuò)誤此代碼中的回調(diào)的信息并沒(méi)有用處。 為了保證可讀性,本文采用意譯而非直譯。 showImg(https://segmentfault.com/img/bVbucuJ?w=1024&h=682); ECMAScript 2015,也稱為ES6,是一個(gè)花了6年時(shí)間完成的主要版本。從那時(shí)起...
摘要:本文將討論該語(yǔ)言的最新版本,以及它又具有了什么新功能。在本次更新中有很大的改進(jìn)。在某些時(shí)候,數(shù)組的元素還是數(shù)組,這些類型的數(shù)組稱為嵌套數(shù)組。要取消數(shù)組的嵌套展平它們,我們不得不使用遞歸。深度指的是數(shù)組內(nèi)嵌套的數(shù)量。 翻譯:瘋狂的技術(shù)宅原文:https://medium.freecodecamp.o... 本文首發(fā)微信公眾號(hào):jingchengyideng歡迎關(guān)注,每天都給你推送新鮮...
摘要:為了使程序員能夠一次一個(gè)地處理集合中的元素,引入了迭代器接口。迭代器使用該方法獲取對(duì)象屬性名稱的數(shù)組,然后將其分配給常量。迭代器的缺點(diǎn)是它們不適合表示異步數(shù)據(jù)源。每次循環(huán)時(shí),都會(huì)調(diào)用迭代器的方法,它返回一個(gè)。 前言 原文地址:https://css-tricks.com/new-es2018-features-every-javascript-developer-should-kno...
摘要:新增了一個(gè),它是一個(gè)輕量級(jí)的日志收集處理工具,占用資源少,適合于在各個(gè)服務(wù)器上搜集日志后傳輸給,官方也推薦此工具。具體的結(jié)構(gòu)如下主機(jī)系統(tǒng)部署服務(wù)安裝準(zhǔn)備是需要的,建議安裝。先下載通用安裝包。 ELK簡(jiǎn)介 ELK是三個(gè)開(kāi)源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開(kāi)源軟件。新增了一個(gè)FileBeat,它是一個(gè)輕量級(jí)的日志收集處理工...
摘要:代理原始對(duì)象,或者真實(shí)數(shù)據(jù),可以理解為供應(yīng)商代理對(duì)象,可以理解為代理商,對(duì)用戶來(lái)說(shuō),直接操作,而不能直接操作攔截對(duì)象屬性的讀取攔截對(duì)象設(shè)置屬性只讓用戶修改屬性,其他的不允許修改攔截操作只暴露屬性,其他的都不暴露攔截屬性名以下劃線開(kāi)頭的, Proxy代理 { // 原始對(duì)象,或者真實(shí)數(shù)據(jù),可以理解為供應(yīng)商 let obj = { time: 2018-10...
閱讀 1459·2021-09-30 09:57
閱讀 1466·2021-09-09 09:33
閱讀 2220·2021-09-04 16:40
閱讀 1792·2021-09-01 10:50
閱讀 3237·2021-09-01 10:31
閱讀 2539·2019-08-30 15:56
閱讀 2970·2019-08-30 15:44
閱讀 3475·2019-08-29 17:29