es8 部分新標(biāo)準(zhǔn)

ES8 或者說(shuō)是 ES2017 已經(jīng)在今年6月底的時(shí)候被 TC39 正式發(fā)布。

字符串填充

在 String 對(duì)象中筷厘,ES8 增加了兩個(gè)新的函數(shù): padStart 和 padEnd 咽块。正如其名氯庆,這倆函數(shù)的作用就是在字符串的頭部和尾部增加新的字符串裁良,并且返回一個(gè)具有指定長(zhǎng)度的新的字符串。你可以使用指定的字符腾夯、字符串或者使用函數(shù)提供的默認(rèn)值-空格來(lái)填充源字符串颊埃。具體的函數(shù)申明如下:

str.padStart(targetLength [, padString])
str.padEnd(targetLength [, padString])

正如你所看到的,這倆函數(shù)的第一個(gè)參數(shù)(必輸)是 targetLength 蝶俱,這個(gè)參數(shù)指的是設(shè)定這倆函數(shù)最后返回的字符串的長(zhǎng)度班利。第二個(gè)參數(shù) padString 是可選參數(shù),代表你想要填充的內(nèi)容榨呆,默認(rèn)值是空格罗标。具體代碼示例如下:

'es8'.padStart(2);          // 'es8'
'es8'.padStart(5);          // '  es8'
'es8'.padStart(6, 'woof');  // 'wooes8'
'es8'.padStart(14, 'wow');  // 'wowwowwowwoes8'
'es8'.padStart(7, '0');     // '0000es8'

'es8'.padEnd(2);          // 'es8'
'es8'.padEnd(5);          // 'es8  '
'es8'.padEnd(6, 'woof');  // 'es8woo'
'es8'.padEnd(14, 'wow');  // 'es8wowwowwowwo'
'es8'.padEnd(7, '6');     // 'es86666'

目前瀏覽器的支持情況如下(信息來(lái)自 MDN ):

Paste_Image.png

values和entries函數(shù)

在 Object 中,ES8 也新增了兩個(gè)新的函數(shù)愕提,分別是 Object.values 函數(shù)和 Object.entries 函數(shù)馒稍。Object.values 函數(shù)將會(huì)返回一個(gè)數(shù)組皿哨,該數(shù)組的內(nèi)容是函數(shù)參數(shù)(一個(gè)對(duì)象)可遍歷屬性的屬性值浅侨。數(shù)組中得到的屬性值的順序與你在對(duì)參數(shù)對(duì)象使用 for in 語(yǔ)句時(shí)獲取到的屬性值的順序一致。函數(shù)聲明如下:

const obj = { x: 'xxx', y: 1 };
Object.values(obj); // ['xxx', 1]

const obj = ['e', 's', '8']; // same as { 0: 'e', 1: 's', 2: '8' };
Object.values(obj); // ['e', 's', '8']

// when we use numeric keys, the values returned in a numerical 
// order according to the keys
const obj = { 10: 'xxx', 1: 'yyy', 3: 'zzz' };
Object.values(obj); // ['yyy', 'zzz', 'xxx']
Object.values('es8'); // ['e', 's', '8']

目前瀏覽器對(duì)于 Object.values 函數(shù)的支持情況如下(信息來(lái)自 MDN ):

Paste_Image.png

介紹完 Object.values 函數(shù)证膨,接下來(lái)繼續(xù)介紹 Object.entries 函數(shù)如输。 Object.entries 函數(shù)與 Object.values 函數(shù)類似,也是返回一個(gè)數(shù)組,只不過(guò)這個(gè)數(shù)組是一個(gè)以源對(duì)象(參數(shù))的可枚舉屬性的鍵值對(duì)為數(shù)組 [key, value] 的 n 行 2 列的數(shù)組不见。它的返回順序與 Object.values 函數(shù)類似澳化。它的函數(shù)聲明如下:

const obj = { x: 'xxx', y: 1 };
Object.entries(obj); // [['x', 'xxx'], ['y', 1]]

const obj = ['e', 's', '8'];
Object.entries(obj); // [['0', 'e'], ['1', 's'], ['2', '8']]

const obj = { 10: 'xxx', 1: 'yyy', 3: 'zzz' };
Object.entries(obj); // [['1', 'yyy'], ['3', 'zzz'], ['10': 'xxx']]
Object.entries('es8'); // [['0', 'e'], ['1', 's'], ['2', '8']]

目前瀏覽器對(duì)于 Object.entries 函數(shù)的支持情況如下(信息來(lái)自 MDN ):

Paste_Image.png

getOwnPropertyDescriptors函數(shù)

Object 中還有一個(gè)新成員,那就是 Object.getOwnPropertyDescriptors 函數(shù)稳吮。該函數(shù)返回指定對(duì)象(參數(shù))的所有自身屬性描述符缎谷。所謂自身屬性描述符就是在對(duì)象自身內(nèi)定義,不是通過(guò)原型鏈繼承來(lái)的屬性灶似。函數(shù)聲明如下:

const obj = { 
  get es7() { return 777; },
  get es8() { return 888; }
};
Object.getOwnPropertyDescriptor(obj);
// {
//   es7: {
//     configurable: true,
//     enumerable: true,
//     get: function es7(){}, //the getter function
//     set: undefined
//   },
//   es8: {
//     configurable: true,
//     enumerable: true,
//     get: function es8(){}, //the getter function
//     set: undefined
//   }
// }
Paste_Image.png

結(jié)尾逗號(hào)

此處結(jié)尾逗號(hào)指的是在函數(shù)參數(shù)列表中最后一個(gè)參數(shù)之后的逗號(hào)以及函數(shù)調(diào)用時(shí)最后一個(gè)參數(shù)之后的逗號(hào)列林。ES8 允許在函數(shù)定義或者函數(shù)調(diào)用時(shí),最后一個(gè)參數(shù)之后存在一個(gè)結(jié)尾逗號(hào)而不報(bào) SyntaxError 的錯(cuò)誤酪惭。示例代碼如下:

function es8(var1, var2, var3,) {
  // ...
}
es8(10, 20, 30,);

異步函數(shù)

由 async 關(guān)鍵字定義的函數(shù)聲明定義了一個(gè)可以異步執(zhí)行的函數(shù)希痴,它返回一個(gè) AsyncFunction 類型的對(duì)象。異步函數(shù)的內(nèi)在運(yùn)行機(jī)制和 Generator 函數(shù)非常類似春感,但是不能轉(zhuǎn)化為 Generator 函數(shù)砌创。

function fetchTextByPromise() {
  return new Promise(resolve => { 
    setTimeout(() => { 
      resolve("es8");
    }, 2000);
  });
}
async function sayHello() { 
  const externalFetchedText = await fetchTextByPromise();
  console.log(`Hello, ${externalFetchedText}`); // Hello, es8
}
sayHello();
Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鲫懒,隨后出現(xiàn)的幾起案子嫩实,更是在濱河造成了極大的恐慌,老刑警劉巖窥岩,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舶赔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡谦秧,警方通過(guò)查閱死者的電腦和手機(jī)竟纳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)疚鲤,“玉大人锥累,你說(shuō)我怎么就攤上這事〖” “怎么了桶略?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)诲宇。 經(jīng)常有香客問我际歼,道長(zhǎng),這世上最難降的妖魔是什么姑蓝? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任鹅心,我火速辦了婚禮,結(jié)果婚禮上纺荧,老公的妹妹穿的比我還像新娘旭愧。我一直安慰自己颅筋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布输枯。 她就那樣靜靜地躺著议泵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪桃熄。 梳的紋絲不亂的頭發(fā)上先口,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音瞳收,去河邊找鬼池充。 笑死,一個(gè)胖子當(dāng)著我的面吹牛缎讼,可吹牛的內(nèi)容都是我干的收夸。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼血崭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼卧惜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起夹纫,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤咽瓷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后舰讹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茅姜,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年月匣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钻洒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锄开,死狀恐怖素标,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情萍悴,我是刑警寧澤头遭,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站癣诱,受9級(jí)特大地震影響计维,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撕予,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一鲫惶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嗅蔬,春花似錦剑按、人聲如沸疾就。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鸟废,卻和暖如春猜敢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盒延。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工缩擂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人添寺。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓胯盯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親计露。 傳聞我的和親對(duì)象是個(gè)殘疾皇子博脑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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

  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,238評(píng)論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)票罐,斷路器叉趣,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • 三,字符串?dāng)U展 3.1 Unicode表示法 ES6 做出了改進(jìn)该押,只要將碼點(diǎn)放入大括號(hào)疗杉,就能正確解讀該字符。有了這...
    eastbaby閱讀 1,539評(píng)論 0 8
  • VideoCapture類 用于從視頻文件或攝像機(jī)捕獲視頻.該類提供了用于從攝像機(jī)捕獲視頻或者讀取視頻文件的C++...
    DevilRoshan閱讀 6,366評(píng)論 0 1
  • 作者:楊會(huì)會(huì) 模特:楊會(huì)會(huì) 攝影:小萍 背景:南京博物院-民國(guó)生活館 南京博物院里面有挺多場(chǎng)館蚕礼,這是其中一個(gè)民國(guó)生...
    楊會(huì)會(huì)_9ece閱讀 292評(píng)論 0 0