發(fā)布于:2021-02-13 00:00:52
0
93
0
在過去五年中,針對核心JavaScript語言的新功能的開發(fā)確實得到了改善,這在一定程度上要歸功于JavaScript框架不斷突破極限并證明了給定功能的重要性。我之前在ES6上發(fā)表的文章《六個微小但令人敬畏的ES6功能》和《六個另外微小但令人敬畏的ES6功能》重點介紹了JavaScript中添加的許多出色功能,這些功能使我們的生活更輕松-當然可以。讓我們看一下ES7和ES8帶給我們的一些“小”功能!
String.prototype.padStart/padEnd
padStart 并padEnd允許我們使用我們選擇的任何文本填充給定的字符串,以確保字符串匹配給定的長度:
// padStart(desiredLength, textToPrepend)
// No text
''.padStart(10, 'Hi') // 'HiHiHiHiHi'
// Some text
'def'.padStart(6, 'abc') // 'abcdef'
// Only use what gets to length
'5678'.padStart(7, '1234') // '1235678'
// padEnd(desiredLength, textToAppend)
'23'.padEnd(8, '0') // '23000000'
一種用法是,padStart 如果用戶輸入的長度不正確,則在電話號碼前添加區(qū)號。 padEnd 可以用于十進制精度。
Object.entries
Object.entries 允許我們以數(shù)組格式([鍵,值])獲取對象的可枚舉屬性對:
// Object literal
Object.entries({ 'a': 'A', 'b': 'B' }); // [["a","A"],["b","B"]]
// String
Object.entries('david') // [["0","d"],["1","a"],["2","v"],["3","i"],["4","d"]]
Object.entries遵循相同的順序for...in。
Object.values
Object.keys 對我來說非常有用,所以我也很高興看到Object.values介紹:
// Object literal
Object.values({ 'a': 23, 'b': 19 }) // [23, 19]
// Array-like object (order not preserved)
Object.values({ 80: 'eighty', 0: 1, 1: 'yes' }) // [1, 'yes', 'eighty']
// String
Object.values('davidwalsh') // ["d", "a", "v", "i", "d", "w", "a", "l", "s", "h"]
// Array
Object.values([1, 2, 3]) // [1, 2, 3]
Object.values 提供對象文字,數(shù)組,字符串等中的值條目。
Array.prototype.includes
Array.prototype.includes 有點像,indexOf但返回一個true orfalse值,而不是該項目的索引:
['a', 'b', 'c'].includes('a') // true, not 0 like indexOf would give
['a', 'b', 'c'].includes('d') // false
indexOf 多年來一直用于檢測數(shù)組中的項目,但是如果編碼不正確,則索引'0'可能導致假陰性。我很高興JavaScript添加了一個函數(shù),該函數(shù)返回的正是我們所需要的:肯定或否定答案!
求冪
JavaScript引入了一種求冪的簡寫方法:
// 2 to the power of 8
Math.pow(2, 8) // 256
// ..becomes
2 ** 8 // 256
這種新語法Math.pow與使用更少的代碼即可完成相同的工作 !
尾隨逗號
我已經足夠大了,還記得在Internet Explorer 6中尾隨逗號會完全炸開JavaScript代碼的日子。JavaScript現(xiàn)在可以容納額外的逗號:
let myObj = { a:'b', b: 'c', } // No error!
let myArr = [1, 2, 3, ] // No error!
[1, 2, 3,].length // 3
[1, 2, 3, , , ].length // 5
請記住數(shù)組長度的情況。ESLint有一條comma-dangle 規(guī)則可用于確保逗號懸掛用法的一致性。
async/await
顯然,async 和await,處理異步任務的新方法并沒有增加“微小”的功能,但是它確實很棒!閱讀我的異步等待指南,將您的回調地獄變成一種更優(yōu)雅,自上而下的異步代碼方法!
在JavaScript的每次迭代中,我們都在解決由于缺乏功能或混用其他功能而遇到的問題。您最近最喜歡JavaScript的什么功能?
作者介紹