我一直被告知,在调试应用程序时,JavaScript的console.log()
方法比仅使用alert()
方法更受欢迎。为什么是这样?有没有一个很好的例子,有人可以指出我console.log()
显然是更好的选择?
答案 0 :(得分:34)
alert()
阻止了alert()
在非调试环境中无法轻易被抑制console
通常可以很好地格式化您的对象并允许遍历它们alert()
条消息console
可以使用直观格式设置不同的日志记录级别答案 1 :(得分:5)
试试这个:
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)
答案 2 :(得分:4)
两者都只是获取有关JS当时发生的事情的信息的一种方式。我曾经一直使用alert()但由于一些原因迁移到console.log()。 (旁注:控制台提供的不仅仅是log(),看看它还能做些什么)。
我认为console.log()的主要好处是:
最后归结为您更喜欢调试的方式。
有一点需要注意。并非所有浏览器都支持console.log(),如果您在代码中保留console.log()调用,则会出现问题。如果控制台不可用于解决该问题,请提供控制台存根。
答案 3 :(得分:3)
它是非阻塞的,允许您深入检查对象(而不仅仅是查看toString()
它们的结果。)
答案 4 :(得分:2)
在javascript执行恢复之前,alert
需要被解雇。 console.log
没有这样的问题。
console.log
还会显示带有值的对象,其中对alert
的调用将要求您首先遍历对象。
答案 5 :(得分:1)
如果您忘记删除调试警报声明,它将直接影响最终用户 如果您忘记删除debuggins console.log语句,则用户不会受到影响 此外,console.log将允许您查看对象的完整内容,而不是JavaScript的toString()表示。
答案 6 :(得分:1)
我想这有点像品味,但使用console.log有许多好处:
仅举几例。
答案 7 :(得分:0)
因为警报是PITA,所以在输入之前停止所有操作,并且不允许对象自省。
在某些情况下使用调试器会更好。
答案 8 :(得分:0)
alert()停止与浏览器的所有交互,直到消息被解除,而console.log()只是将消息打印到控制台。
实施例。您正在打印一堆变量的值,以确保它们是正确的,并且不希望在每个变量之后关闭警报窗口。