es8
es8
es8的五个特性:
-
字符串补全
String.prototype.padStart(length [, string])和String.prototype.padEnd(length [, string])`-
padStart
'abc'.padStart(1); // 'abc'
'abc'.padStart(1, 'def'); // 'abc'
// 只要第一个参数不大于原字符串长度就会返回原字符串'abc'.padStart(4); // ' abc'(注意:前面有一个空格)
'abc'.padStart(4, 'def'); // 'dabc'
'abc'.padStart(8, 'def'); // 'defdeabc'
// 只要第一个参数大于原字符串长度,就会在前面补上第二个参数的内容,没有第二个参数则补空格。 -
padEnd
'abc'.padEnd(1); // 'abc'
'abc'.padEnd(1, 'def'); // 'abc'
// 只要第一个参数不大于原字符串长度就会返回原字符串'abc'.padEnd(4); // 'abc '(注意:后面有一个空格)
'abc'.padEnd(4, 'def'); // 'abcd'
'abc'.padEnd(8, 'def'); // 'abcdefde'
// 只要第一个参数大于原字符串长度,就会在后面补上第二个参数的内容,没有第二个参数则补空格。
-
-
Object.values()和Object.entries();
-
对象
const obj1 = {
'x': 'xx',
'y': 'yy'
}
const obj2 = {
10: 'xx',
5: 'yy'
}Object.values(obj1); // ['xx', 'yy']
Object.entries(obj1); // [['x', 'xx'], ['y', 'yy']]Object.values(obj2); // ['yy', 'xx']
Object.entries(obj2); // [[5, 'yy'], [10, 'xx']] -
数组
const arr = ['x', 'y'];
Object.values(arr); // ['x', 'y']
Object.entries(arr); // [['0', 'x'], ['1', 'y']] -
字符串
const str = ’xy';
Object.values(str); // ['x', 'y']
Object.entries(str); // [['0', 'x'], ['1', 'y']]
-
-
函数结尾可以使用逗号
function foo(a, b,) {};
foo(1, 2,); -
async...await
async function f() {
const n1 = await foo1();
console.log(n1);
}function foo1() {
return new Promise((res, rej) => {
setTimeout(() => {
res(1);
}, 1000);
});
}f(); // 1s后显示1
-
Object.getOwnPropertyDescriptors
-
只会返回对自身属性的描述,不会返回对继承属性的描述
function Obj() {
this.prop1 = 'prop1';
}
Obj.prototype.prop2 = 'prop2';const obj = new Obj();
Object.defineProperty(obj, 'prop3', {
value: 'prop3',
enumerable: false,
writable: false,
configurable: false
});Object.getOwnPropertyDescriptors(obj);
// {
prop1: {
value: 'prop1',
writable: true,
enumerable: true,
configurable: true
},
prop3: {
value: 'prop3',
writable: false,
enumerable: false,
configurable: false
}
}
-

浙公网安备 33010602011771号