JavaScript基础系列 —— 基本值引用值、作用域作用域链与闭包

这位选手请仔细听题,并准备好你的秒表。

一到三题,你有60s作答时间;四到八题你有150s作答时间;九到十题你有90s作答时间。
总计 5分钟,Ready? Go!

一到三题,理解基本值与引用值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 题目一
var a = 1;
a = 2;
console.log(a);


// 题目二
var a = {
num: 1
};
var b = a;
b = {
num: 2
};
console.log(a);


// 题目三
var a = {
num: 1
};
var c = a;
c.num = 3;
console.log(a);

四到九题,理解作用域与作用域链

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 题目四
var a = 1;
(function () {
var a = 2;
})();
console.log(a);


// 题目五
var a = 1;
(function () {
a = 2;
})();
console.log(a);


// 题目六
var a = 1;
(function (a) {
a = 2;
})(a);
console.log(a);


// 题目七
var a = {
num: 1
};
(function (a) {
a.num = 2;
})(a);
console.log(a);


// 题目八
var a = {
num: 1
};
(function (a) {
a = {
num: 3
};
})(a);
console.log(a);

九到十题,理解闭包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var a = 1;
var b = (function () {
var c = 1;
return function (x) {
return (c = c + x);
};
})();


// 题目九
console.log(b(a));
console.log(a);


// 题目十
console.log(b(a));
console.log(a);