webveuje/考试/原题/es6/解构赋值.md
2021-04-29 17:16:40 +08:00

2.3 KiB

解构赋值

选择

  1. 下面代码执行后 a,b,c的值分别是
let [a, b, c] = [1, 2, 3];

A.1,2,3 B.2,3,1 C.未定义 D.undefined undefined undefined

答案 A 解析 在解构中,有下面两部分参与: 解构的源,解构赋值表达式的右边部分。 解构的目标,解构赋值表达式的左边部分。

  1. 下面代码执行后 a,b,c的值分别是 code
let [a, [[b], c]] = [4, [[5], 6]];

A.4 [5] 6 B.[4, 5], 6 undefined undefined C.4,5,6 D. 4,[[5], 6]

答案 C

  1. 下面代码执行后 a,b的值分别是 code
let [a, , b] = [1, 2, 3];

A.1,2 B.1,3 C.2,3 D.1,3

答案 D

  1. 下面代码执行后 a,b的值分别是 CODE
let [a = 1, b] = []; // a = 1, b = undefined

A.1 undefined B. 1 报错 C.[] D. undefined undefined

答案 A

  1. 下面代码执行后 a b的值分别是 code
let [a, ...b] = [1, 2, 3];

A. 1; 2,3 B. 1;[1,2,3] C.1,[2,3] D.1,[]

答案 C

  1. 下面代码执行后 a,b,c,e,d的值分别是 code
let [a, b, c, d, e] = 'hello';

A h,e,l,l,o B.h,e,l,o,l C. 所有的都是undefined D. 所有的都是空数组

答案 B

  1. 下面代码执行后 a的值为 code
let [a = 2] = [undefined]; // a = 2

A.2 B.undefined C.[] D.报错

答案 A

  1. 下面代码执行后foo,bar 的值分别是 code
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };

A. foo bar B.aaa,bbb C.foo bbb D.aaa bar

答案 B

  1. 下面代码执行后foo 的值为 code
let { baz : foo } = { baz : 'ddd' };

A. baz B.foo C.ddd D.undefiend

答案 C

  1. 下面代码执行后X 的值为 code
let obj = {p: ['hello', {y: 'world'}] };
let {p: [x, {  }] } = obj;

A.hello B.world C.p D.obj

答案 A

  1. 下面代码执行后x,y 的值分别为 code
let obj = {p: [{y: 'world'}] };
let {p: [{ y }, x ] } = obj

A.undefined undefined B. obj world C. 报错 obj D.undefined world

答案 D

  1. 下面代码执行后a,b,rest 的值分别为 code
let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40};

A. 10 20 30,40 B.10 20 [30,40] C. 10 20 [] D.undefined undefined []

答案 B

  1. 下面代码执行后aa,bb 的值分别为 code
let {a: aa = 10, b: bb = 5} = {a: 3};

A. 3 5 B.10 5 C. 3 undefined D. 报错