前端高考题,测测你能及格吗?

ES2018(ES9) 新特性包括:异步迭代器、对象展开运算符、Promise.prototype.finally、非转义序列的模板字符串、正则表达式 s/dotAll 模式、等等...

高考已经结束了,我也来蹭个热点。本文主要用于测试你对 ES2018(ES9) 的掌握情况,答案可在 esnext.devtips.cn 找到。

点击文章左下角的阅读原文可以直接打开测试页面,测试过程中可以实时查看得分,并能查看答案。

1. 以下代码的执行结果?

 
  
  1. let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };

  2. console.log(z);

A: 3
B: 4
C: {a:3,b:4}
D: [objectObject]

2. 以下代码的执行结果?

 
  
  1. let { ...obj } = Object.create({ x: 1 });

  2. console.log(obj.x);

A: 1
B: undefined
C: {x:1}
D: null

3. 以下两段代码在功能上是否相等?

 
  
  1. function fn1(obj) {

  2.  let { x, y, ...z } = obj;

    扫描二维码关注公众号,回复: 2143107 查看本文章
  3.  return { x, y, z };

  4. }

  5. function fn2(obj) {

  6.  let { x, ...n } = obj;

  7.  let { y, ...z } = n;

  8.  return { x, y, z };

  9. }

A: 功能相同
B: 不相同
C: 不知道

4. 以下代码的执行结果?

 
  
  1. let { x, y, ...z } = null;

  2. console.log(z);

A: ReferenceError
B: null
C: TypeError
D: SyntaxError

5. 以下代码的执行结果?

 
  
  1. let obj = { x: 1, y: 2, a: 3, b: 4 };

  2. let { ...x, y, z } = obj;

  3. console.log(x);

A: ReferenceError
B: null
C: TypeError
D: SyntaxError

6. 以下代码会抛出异常吗?

 
  
  1. let obj = { x: 1, y: 2, a: 3, b: 4 };

  2. let objWithXGetter = {

  3.    ...obj,

  4.    get x() { throw new Error() }

  5. };

A: 抛出异常
B: 没有异常

7. 以下代码会抛出异常吗?

 
  
  1. let obj = { x: 1, y: 2, a: 3, b: 4 };

  2. let objWithXGetter = {

  3.  ...obj,

  4.  ...{ get x() { throw new Error() } }

  5. };

A: 抛出异常
B: 没有异常

8. 以下代码的执行结果?

 
  
  1. let emptyObject = { ...null, ...undefined };

  2. let emptyArray = [...null, ...undefined];

A: {}[]
B: error, error
C: error, []
D: {}, error

9. 以下代码的执行结果?

 
  
  1. let x = { a: 1, b: 2 };

  2. let y = [ ...x ];

A: []
B: error
C: [{a:1},{b:2}]
D: [1,2]

10. 以下代码的执行结果?

 
  
  1. let x = { a: 1, b: 2, length: 2 };

  2. let y = [ ...x ];

A: []
B: error
C: [{a:1},{b:2}]
D: [1,2]

11. 以下代码的执行结果?

 
  
  1. let x = [ 1, 2 ];

  2. let { ...y } = x;

  3. console.log(y);

A: undefined
B: error
C: null
D: {0:1,1:2}

12. 以下代码的执行结果?

 
  
  1. let x = { a: 1 };

  2. let o = {

  3.  __proto__: null,

  4.  b: 2,

  5.  ...x

  6. };

  7. console.log(o);

A: null
B: error
C: {a:1,b:2}
D: {__proto__:null,a:1,b:2}

13. 以下代码的执行结果?

 
  
  1. let x = `\u{55}`;

  2. x.length;

A: 0
B: 1
C: 6
D: error

14. 以下代码的执行结果?

 
  
  1. let x = `\unicode`;

  2. x.length;

A: 0
B: 1
C: 8
D: error

15. 以下代码的执行结果?

 
  
  1. let x = String.raw`\u{55}`;

  2. x.length;

A: 0
B: 1
C: 6
D: error

16. 以下代码的执行结果?

 
  
  1. let x = String.raw`\unicode`;

  2. x.length;

A: 0
B: 1
C: 8
D: error

17. 以下代码的执行结果?

 
  
  1. function tag(str) {

  2.  return str[0].toUpperCase();

  3. }

  4. tag`justjavac`;

A: Justjavac
B: JUSTJAVAC
C: justjavac
D: error

18. 以下代码的执行结果?

 
  
  1. function tag(str) {

  2.  return str[0];

  3. }

  4. tag`\unicode`;

A: \unicode
B: error
C: undefined
D: \

19. 以下代码的执行结果?

 
  
  1. let regex = /^.$/;

  2. regex.test('道');

  3. regex.test('

猜你喜欢

转载自blog.csdn.net/vca54lu0kv27w8zzbd/article/details/80650328
今日推荐