Firefox控制台迭代Map对象返回undefined、Chrome运行正常是什么原因?
原因分析
for...of循环本身没有返回值,所有没有显式返回值的代码段在浏览器控制台执行后默认都会返回undefined,这个表现是完全正常的,Chrome执行这段代码最后也会返回undefined,只是你先看到了console.log的输出,所以忽略了最后的返回值。
你在Firefox看不到打印内容,基本都是控制台日志筛选的问题,按以下步骤排查即可:
- 检查Firefox控制台顶部的筛选栏,确认
日志(Log)选项处于勾选状态。如果只勾选了错误、警告、网络等其他筛选项,console.log输出的普通日志会被默认隐藏,点击筛选栏的「重置」按钮恢复默认筛选规则就能看到输出。 - 如果是用单行输入框执行代码,可以按
Ctrl + B切换到多行编辑器模式,粘贴完整代码后点击运行,避免单行模式下代码解析截断的问题。 - 可以单独执行
myMap命令验证代码执行结果:如果控制台能正常输出完整的Map对象内容,就说明代码本身执行完全正常,只是日志输出被过滤了。
目前所有正式版Firefox都完全支持Map和for...of遍历语法,不存在兼容问题,不需要怀疑语法本身的正确性。
内容的提问来源于stack exchange,提问作者user21398
相关产品推荐
相关产品推荐

