首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
以下哪些数据类型可以使用for...of遍历()
[不定项选择题]
以下哪些数据类型可以使用for...of遍历()
数组
字符串
map
JSON对象
查看正确选项
添加笔记
求解答(0)
邀请回答
收藏(14)
分享
纠错
2个回答
添加回答
0
Lhy_xxy
for...of 循环只能遍历
可迭代对象(Iterables)
,即实现了
Symbol.iterator 方法
的对象。这些对象包括:
内置可迭代对象
:
数组(Array)、字符串(String)、Map、Set、arguments 对象、DOM 集合(如 NodeList)等
发表于 2025-06-16 20:09:39
回复(0)
0
即墨清和
**核心知识点:`for…of` 只能遍历 “可迭代对象(Iterable)”** 所谓 *Iterable*,就是内部实现了 `Symbol.iterator` 方法的值。ES 规范里,以下内置类型天生自带 `@@iterator`: | 内置类型 | 说明(拿来就能 `for…of`) | | ------------------------------------- | ----------------------- | | `Array` | 数组 | | `String` | 会按字符(含 UTF-16 码元)迭代 | | `Map` | 默认迭代 `[key, value]` 二元组 | | `Set` | 默认迭代元素值 | | `TypedArray`、`arguments`、`NodeList` … | | --- ### 逐项分析题目里的四个选项 | 选项 | 是否可迭代 | 结论 | 演示 | | --------------------------- | ----- | ------- | ---------------------------------------------------------------------------- | | **A. 数组** | ✔ | 可选 | `for (const item of [1,2,3]) console.log(item)` | | **B. 字符串** | ✔ | 可选 | `for (const ch of '你好') console.log(ch)` | | **C. Map** | ✔ | 可选 | `js const m = new Map([['a',1]]); for (const [k,v] of m) console.log(k,v); ` | | **D. JSON 对象**(其实就是普通对象字面量) | ✘ | **不可选** | `js for (const x of {a:1,b:2}) {} // TypeError: obj is not iterable ` | > **为什么普通对象(含“JSON 对象”)不能直接 `for…of`?** > 因为它们没有实现 `Symbol.iterator`。要遍历可以先转成可迭代结构: > > ```js > for (const [k,v] of Object.entries({a:1,b:2})) { … } > ``` --- ### 结论 能直接使用 `for…of` 的只有 **A、B、C**,因此答案是 **ABC**。
发表于 2025-06-14 13:12:23
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Javascript
难度:
2条回答
14收藏
81浏览
热门推荐
相关试题
ajax原理、如何实现刷新数据及优点?
迅雷
Javascript
评论
(7)
约瑟夫环
过关题目
语言题
评论
(1)
测试ATM取款功能,已知取款数只能...
软件测试
评论
(0)
Nginx配置中,怎么用正则表达式...
Linux
评论
(1)
LoRA(Low-Rank Ada...
大模型开发
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题