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

153 lines
2.3 KiB
Markdown

# 解构赋值
## 选择
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
解析 在解构中,有下面两部分参与:
解构的源,解构赋值表达式的右边部分。
解构的目标,解构赋值表达式的左边部分。
2. 下面代码执行后 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
3. 下面代码执行后 a,b的值分别是
code
```
let [a, , b] = [1, 2, 3];
```
A.1,2 B.1,3 C.2,3 D.1,3
答案 D
4. 下面代码执行后 a,b的值分别是
CODE
```
let [a = 1, b] = []; // a = 1, b = undefined
```
A.1 undefined B. 1 报错 C.[] D. undefined undefined
答案 A
5. 下面代码执行后 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
6. 下面代码执行后 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
7. 下面代码执行后 a的值为
code
```
let [a = 2] = [undefined]; // a = 2
```
A.2 B.undefined C.[] D.报错
答案 A
8. 下面代码执行后foo,bar 的值分别是
code
```
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
```
A. foo bar B.aaa,bbb C.foo bbb D.aaa bar
答案 B
9. 下面代码执行后foo 的值为
code
```
let { baz : foo } = { baz : 'ddd' };
```
A. baz B.foo C.ddd D.undefiend
答案 C
10. 下面代码执行后X 的值为
code
```
let obj = {p: ['hello', {y: 'world'}] };
let {p: [x, { }] } = obj;
```
A.hello B.world C.p D.obj
答案 A
11. 下面代码执行后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
12. 下面代码执行后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
13. 下面代码执行后aa,bb 的值分别为
code
```
let {a: aa = 10, b: bb = 5} = {a: 3};
```
A. 3 5 B.10 5 C. 3 undefined D. 报错