
console.png
es7
- includes()
驗證數組中是否存在某個元素,也能檢測出數組中NaN
const a = [1, 2, 3, 4];
a.includes(1) // true;
[NaN, 1].includes(NaN) // true;
[NaN, 1].indexOf(NaN) // -1
- 使用指數運算符**
console.log(2**3) // 8;
es8
- Object.values()
返回一個由對象屬性值組成的數組。
const obj = {
a: 1,
b: 2,
c: 3
};
Object
.values(obj)
.forEach(value => {
console.log(value);
});
// 1 2 3
- Object.entries()
如果 JavaScript 數據結構具有鍵和值,條目是一個鍵值對,被編碼為2元數組。
const obj = {a: 1, b: 2, c: 3};
const temp = Object.entries(obj);
console.log(temp)
// [['a', 1], ['b': 2], ['c': 3]];
- padStart() && padEnd()
padStart()是在字符串前使用 fillString 填充,直到字符串長度為 maxLength;
padEnd() 的工作方式與 padStart() 類似,但不是在字符串開始的地方插入重復的 fillString ,而是將其插入到字符串結束的地方;
'x'.padStart(5, 'ab')
log:
'ababx'
'x'.padStart(4, 'ab')
log:
'abax'
'abcd'.padStart(2, '#') (如果接收字符串的長度大于等于 maxLength ,則返回原始字符串)
log:
'abcd'
'x'.padStart(3) (如果省略了 fillString ,則使用一個單獨空格字符串(”)代替)
log:
' x'
'x'.padEnd(5, 'ab')
log:
'xabab'
'x'.padEnd(4, 'ab')
log:
'xaba'
'abcd'.padEnd(2, '#')
log:
'abcd'
'abc'.padEnd(10, '0123456789')
log:
'abc0123456'
'x'.padEnd(3)
log:
'x '
- 函數參數列表和調用中尾部的逗號不會再觸發(fā)錯誤警告
eg:
function es8(var1, var2, var3,) {
// ...
}
- Object.getOwnPropertyDescriptors
返回指定對象所有自身屬性(非繼承屬性)的描述對象。(相當于Object.getOwnPropertyDescriptor的復數形式)
const aa = {
a: 1,
b: 2
}
console.log(Object.getOwnPropertyDescriptors(aa));
log:
a: {value: 1, writable: true, enumerable: true, configurable: true}
b: {value: 2, writable: true, enumerable: true, configurable: true}