ES2018(ES9) 新特性包括:异步迭代器、对象展开运算符、Promise.prototype.finally、非转义序列的模板字符串、正则表达式 s/dotAll 模式、等等...
高考已经结束了,我也来蹭个热点。本文主要用于测试你对 ES2018(ES9) 的掌握情况,答案可在 esnext.devtips.cn 找到。
点击文章左下角的阅读原文可以直接打开测试页面,测试过程中可以实时查看得分,并能查看答案。
1. 以下代码的执行结果?
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(z);
A: 3
B: 4
C: {a:3,b:4}
D: [objectObject]
2. 以下代码的执行结果?
let { ...obj } = Object.create({ x: 1 });
console.log(obj.x);
A: 1
B: undefined
C: {x:1}
D: null
3. 以下两段代码在功能上是否相等?
function fn1(obj) {
let { x, y, ...z } = obj;
return { x, y, z };
}
function fn2(obj) {
let { x, ...n } = obj;
let { y, ...z } = n;
return { x, y, z };
}
A: 功能相同
B: 不相同
C: 不知道
4. 以下代码的执行结果?
let { x, y, ...z } = null;
console.log(z);
A: ReferenceError
B: null
C: TypeError
D: SyntaxError
5. 以下代码的执行结果?
let obj = { x: 1, y: 2, a: 3, b: 4 };
let { ...x, y, z } = obj;
console.log(x);
A: ReferenceError
B: null
C: TypeError
D: SyntaxError
6. 以下代码会抛出异常吗?
let obj = { x: 1, y: 2, a: 3, b: 4 };
let objWithXGetter = {
...obj,
get x() { throw new Error() }
};
A: 抛出异常
B: 没有异常
7. 以下代码会抛出异常吗?
let obj = { x: 1, y: 2, a: 3, b: 4 };
let objWithXGetter = {
...obj,
...{ get x() { throw new Error() } }
};
A: 抛出异常
B: 没有异常
8. 以下代码的执行结果?
let emptyObject = { ...null, ...undefined };
let emptyArray = [...null, ...undefined];
A: {}
, []
B: error, error
C: error, []
D: {}
, error
9. 以下代码的执行结果?
let x = { a: 1, b: 2 };
let y = [ ...x ];
A: []
B: error
C: [{a:1},{b:2}]
D: [1,2]
10. 以下代码的执行结果?
let x = { a: 1, b: 2, length: 2 };
let y = [ ...x ];
A: []
B: error
C: [{a:1},{b:2}]
D: [1,2]
11. 以下代码的执行结果?
let x = [ 1, 2 ];
let { ...y } = x;
console.log(y);
A: undefined
B: error
C: null
D: {0:1,1:2}
12. 以下代码的执行结果?
let x = { a: 1 };
let o = {
__proto__: null,
b: 2,
...x
};
console.log(o);
A: null
B: error
C: {a:1,b:2}
D: {__proto__:null,a:1,b:2}
13. 以下代码的执行结果?
let x = `\u{55}`;
x.length;
A: 0
B: 1
C: 6
D: error
14. 以下代码的执行结果?
let x = `\unicode`;
x.length;
A: 0
B: 1
C: 8
D: error
15. 以下代码的执行结果?
let x = String.raw`\u{55}`;
x.length;
A: 0
B: 1
C: 6
D: error
16. 以下代码的执行结果?
let x = String.raw`\unicode`;
x.length;
A: 0
B: 1
C: 8
D: error
17. 以下代码的执行结果?
function tag(str) {
return str[0].toUpperCase();
}
tag`justjavac`;
A: Justjavac
B: JUSTJAVAC
C: justjavac
D: error
18. 以下代码的执行结果?
function tag(str) {
return str[0];
}
tag`\unicode`;
A: \unicode
B: error
C: undefined
D: \
19. 以下代码的执行结果?
let regex = /^.$/;
regex.test('道');
regex.test('