ES8 (ES2017)
字符串填充
padStart
用另一个字符串从头开始填充当前的字符串。
语法:
str.padStart(targetLength [, padString])
targetLength
: 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。padString
: 可选。填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。默认为:''
;
示例:
'abc'.padStart(10); // " abc" 'abc'.padStart(10, "foo"); // "foofoofabc" 'abc'.padStart(6,"123465"); // "123abc" 'abc'.padStart(8, "0"); // "00000abc" 'abc'.padStart(1); // "abc"
padEnd
用另一个字符串从末尾开始填充当前字符串。与
padStart
相反。语法:
str.padEnd(targetLength [, padString])
targetLength
: 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。padString
: 可选。填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。默认为:''
;
示例:
'abc'.padEnd(10); // "abc " 'abc'.padEnd(10, "foo"); // "abcfoofoof" 'abc'.padEnd(6, "123456"); // "abc123" 'abc'.padEnd(1); // "abc"
Object.values
Object.values()
返回一个对象所以的值的数组。
示例:
const obj = { foo: 'bar', baz: 100 };
console.log(Object.values(obj)); // ['bar', 100]
Object.entries
Object.entries()
返回一个数组,内容为给定对象的键值对数组。
示例:
const obj = { foo: 'bar', baz: 100 };
console.log(Object.entries(obj)); // [["foo", "bar"], ["baz", 100]]
Object.getOwnPropertyDescriptors
Object.getOwnPropertyDescriptors()
方法用来获取一个对象的所有自身属性的描述符。
示例:
Object.getOwnPropertyDescriptors({foo: 'bar', baz: 100})
结果
{
baz:{
configurable: true
enumerable: true
value: 100
writable: true
}
foo: {
configurable: true
enumerable: true
value: "bar"
writable: true
}
}
异步函数Async
Async
函数可以替代以前的函数回调或者ES6中的Promise()
来实现异步调用。
示例:
async function doSomething() {
const
response1 = await doSomething1(),
response2 = await doSomething2(response1),
response3 = await doSomething3(response2);
}
结尾逗号
从这个版本开始,可以支持数组、对象、参数等最后一个结尾可以加 ,
.例如:
const a = [1, 2, 3,];
const b = {
a: 1,
b: 2,
c: 3,
};
function c(one,two,three,) {};
ShareArrayBuffer和Atomics
用于从共享内存位置读取和写入。