我一直被告知在调试应用程序时,JavaScript 的console.log()
方法比简单地使用alert()
方法更受欢迎。为什么是这样?有没有一个很好的例子,有人可以指出我哪里console.log()
显然是更好的选择?
为什么 console.log() 被认为比 alert() 更好?
IT技术
javascript
debugging
alert
console.log
2021-01-25 13:11:09
6个回答
alert()
正在阻塞alert()
在非调试环境中不容易被抑制console
通常很好地格式化您的对象并允许遍历它们- 日志记录语句通常具有指向发出日志记录语句的代码的交互式指针
- 您一次不能查看多于一条
alert()
消息 console
s 可以具有具有直观格式的不同日志记录级别
试试这个:
var data = {a: 'foo', b: 'bar'};
console.log(data);
alert(data);
你会看到它console.log
向你展示了对象,而alert
给了你[object Object]
,这是没有用的。这也适用于例如元素:
alert(document.body); // [object HTMLBodyElement] (exact result depends on your browser)
两者都只是获取有关您的 JS 中当时正在发生的事情的信息的一种方式。我曾经一直使用 alert() 但由于一些原因迁移到 console.log() 。(旁注:控制台提供的不仅仅是 log(),看看它还能做什么)。
我认为 console.log() 的主要好处是:
- 它不会像警报那样停止进程
- 您可以看到哪个脚本的哪一行抛出了日志条目,而无需将该行放入您的消息中
- 如果您要调试的东西不止一件,那么在您的警报框中继续点击“确定”会变得非常烦人
- 你可以记录对象并获得很多好的信息(感谢提醒,其他回答者)
最后归结为您更喜欢调试的方式。
需要注意的一件事。并非所有浏览器都支持 console.log() 并且如果您在代码中保留 console.log() 调用会出现问题。如果控制台无法解决该问题,请提供控制台存根。
它是非阻塞的,并允许您深入检查对象(而不是只查看toString()
ing的结果)。
该alert
需求被解雇之前,JavaScript执行就可以恢复。console.log
没有这样的问题。
console.log
还将显示带有值的对象,其中调用alert
将要求您首先遍历对象。