首页/ 学科题库/ javascript/ JS对象与数组专题测试
javascript 模拟试卷

JS对象与数组专题测试

20 题 40 分钟 难度:★
  • 对象字面量:对象创建语法、属性名与属性值、点语法与方括号语法、计算属性名
  • 数组字面量:数组创建语法、元素类型多样性、数组索引从0开始、length属性
  • 属性访问与修改:点语法访问、方括号语法访问、动态属性名、属性添加与删除
  • 数组索引与长度:索引范围、length属性含义、稀疏数组、超出索引返回undefined
  • 数组遍历方法:forEach遍历、map映射、filter过滤、for...of与for...in区别
  • 数组常用方法:push/pop/shift/unshift、splice与slice、map/filter返回新数组
  • 对象遍历方法:Object.keys/values/entries、for...in遍历属性名
  • 解构赋值:数组解构按顺序、对象解构按属性名、默认值设置

试卷习题(20 题)

参考答案在文末
判断题
1
判断题

对象字面量中的属性名可以使用字符串形式,如 { "name": "张三" }。

A

对

B

错

2
判断题

访问对象的属性时,如果属性名包含特殊字符或空格,必须使用方括号语法。

A

对

B

错

3
判断题

JavaScript 数组可以包含不同类型的元素,如 [1, "hello", true, null, {a:1}]。

A

对

B

错

4
判断题

数组的 length 属性总是等于数组中实际元素的个数。

A

对

B

错

5
判断题

for...in 遍历数组的索引(键),for...of 遍历数组的元素(值)。

A

对

B

错

单选题
6
单选题

以下哪种方式可以创建一个包含 name 属性的对象?

A

let obj = [name: "张三"];

B

let obj = {name: "张三"};

C

let obj = (name: "张三");

D

let obj = <name: "张三">;

7
单选题

以下哪种方式可以创建一个包含三个元素的数组?

A

let arr = (1, 2, 3);

B

let arr = {1, 2, 3};

C

let arr = [1, 2, 3];

D

let arr = <1, 2, 3>;

8
单选题

数组 let arr = ["a", "b", "c"]; 中,访问第二个元素 "b" 应该使用?

A

arr[1]

B

arr[2]

C

arr["b"]

D

arr.b

9
单选题

以下代码输出结果是什么?

JavaScript
let key = "name";
let obj = {[key]: "张三"};
console.log(obj.name);
A

undefined

B

"张三"

C

"[key]"

D

报错

10
单选题

以下代码输出结果是什么?

JavaScript
let arr = [1, 2, 3];
arr.forEach((item, index) => {
    console.log(index + ":" + item);
});
A

0:1, 1:2, 2:3

B

1:1, 2:2, 3:3

C

1:0, 2:1, 3:2

D

undefined

11
单选题

以下代码执行后,a 和 b 的值分别是?

JavaScript
let [a, b] = [1, 2, 3];
A

a=1, b=2

B

a=1, b=[2, 3]

C

a=[1, 2], b=3

D

a=1, b=undefined

12
单选题

以下代码执行后,name 和 age 的值分别是?

JavaScript
let {name, age} = {name: "张三", age: 20, city: "北京"};
A

name="张三", age=20

B

name="张三", age={age: 20, city: "北京"}

C

name=undefined, age=undefined

D

name={name: "张三"}, age={age: 20}

13
单选题

以下代码输出结果是什么?

JavaScript
let arr = [1, 2, 3, 4];
let sum = arr.reduce((acc, cur) => acc + cur, 0);
console.log(sum);
A

[1, 2, 3, 4]

B

10

C

0

D

4

多选题
14
多选题

关于数组遍历方法,以下说法正确的是?

A

forEach 不改变原数组

B

map 返回新数组,不改变原数组

C

filter 返回满足条件的元素组成的新数组

D

for...of 可以遍历数组,也可以用 break 跳出

15
多选题

关于解构赋值,以下说法正确的是?

A

数组解构按位置顺序匹配

B

对象解构按属性名匹配

C

解构时可以设置默认值

D

解构可以用于函数参数

16
多选题

以下哪些数组方法会修改原数组?

A

push

B

pop

C

map

D

splice

17
多选题

以下哪些方法可以用于遍历对象?

A

Object.keys(obj)

B

Object.values(obj)

C

Object.entries(obj)

D

for...in

填空题
18
填空题

对象字面量使用 创建,属性以 形式表示,键和值之间用 分隔,多个属性之间用 逗号 分隔。

19
填空题

数组索引从 开始,最后一个元素的索引是 。访问不存在的索引返回 。length 属性表示 最大索引加1,可以修改它来 截断数组。

20
填空题

数组解构使用 ,按 匹配。对象解构使用 ,按 属性名 匹配。解构不匹配时变量值为 undefined,可以设置 默认值 避免。

参考答案
1.正确 2.正确 3.正确 4.错误 5.正确 6.B 7.C 8.A 9.B 10.A 11.A 12.A 13.B 14.A;B;C;D 15.A;B;C;D 16.A;B;D 17.A;B;C;D 18.花括号;键值对;冒号 19.0;arr.length - 1;undefined 20.[];顺序;{}
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 JS安全与边界处理专题测试 下一套 → JS异步编程入门专题测试