检测window.console存在的正确方法是什么?

Ant*_*ong 5 javascript jquery

我有这段代码:

            var has_logger = (window.console && window.console.log);
            if (has_logger) {
                window.console.log(data);
            }
Run Code Online (Sandbox Code Playgroud)

has_logger而不是一个布尔值,实际上是初始化为一个函数对象(function log() { [native code] })

我的问题:

  • 现代浏览器中没有必要测试console.log,对吗?

  • 初始化has_logger为布尔值而不是函数对象的正确方法是什么?

Ama*_*dan 4

如果Firebug没有启用,不检查的话Firefox会抛出错误。

var has_logger = !!(window.console && window.console.log);
Run Code Online (Sandbox Code Playgroud)

永远是布尔值。