关于 Javascript 里 console 使用技巧的问题。

2017-04-28 10:33:09 +08:00
 jmyz0455
  1. 如果使用 console.log 在控制台里输出 Object 类型的数据,总是呈现一种折叠的状态。请问有没有办法能使控制输出的时候是不折叠的?(全展开)
  2. 如果输出的是 Object 类型的数据,使用 console.log("%c%o", "color: red;", {}); 是无法输出带样式的数据,大家可以试一下,貌似折叠状态下的输出都是无法使用样式的,请问能不能尝试在折叠状态下输出带样式的数据?
  3. 有些 Object 类型的数据,输出的时候,第一行显示的不仅是 Object 字样,还会在后面有缩略的信息,比如 Object {a:"a", b:"b" ... } 这样的,因为我无法重现这种情况,所以可能描述得不准确。请问是怎么做到了?

其实我有时候实时调试,很需要直接在控制台看到一些键值对,比如像 {a:"a", b:"b", c:"c"} 的内容,而不是需要我一个个点开来看。所以有这么一个需求,大家有更好的方案吗?

2193 次点击
所在节点    JavaScript
9 条回复
momocraft
2017-04-28 10:47:05 +08:00
你描述的行为都是 (特定) 浏览器的开发工具干的

如果开发工具及其扩展不提供你要的选项, 也许可以 console.log(JSON.stringify( ))
yangg
2017-04-28 10:58:53 +08:00
console.log(JSON.stringify(obj, null, 2))
第 3 个参数,指定 2 空格
1010011010
2017-04-28 11:50:11 +08:00
对象能看到啊


如果是数组,用 console.table
sunjourney
2017-04-28 11:57:07 +08:00
@1010011010 #3
console.table 不错,可以这样用 `console.table(Object.entries(obj))`
sensui7
2017-04-28 11:58:09 +08:00
console.table 数组, 对象都可用
zhuangtongfa
2017-04-29 23:12:13 +08:00
JSON.stringify({title:"test title",content:"test content"},null,2)
jmyz0455
2017-05-02 16:21:07 +08:00
@1010011010 有时候不行,不知道为何。不过找了很久,发现这种情况下不行:
console.log("%s", {a:"a", b:"b", c:"c", d:{1:"1", 2:"2", 3:"3"}});
你可以看看。
1010011010
2017-05-02 16:58:16 +08:00
干嘛要带格式啊,要输出字符串转 json 先啦

[Console 文档]( https://developer.mozilla.org/zh-CN/docs/Web/API/Console)
jmyz0455
2017-05-08 22:47:21 +08:00
@1010011010 带格式只是为了在一堆别人的 console 里看出自己独有样式的 console

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/357888

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX