什么是window.console && console.log?

if (open_date) { open_date = get_date_from_string(open_date); window.console && console.log(open_date); window.console && console.log(cancel_until); 

什么是window.console && console.log ? 它必须在代码中吗? 通过这个脚本不能在IE(所有版本)上工作 – > IE只有在按F12后运行javascript

只有当truthy表达式truthy才会评估右侧表达式。 这就是逻辑AND运算符的工作原理。

它基本上是短的

 if( window.console ) { console.log( open_date ); } 

正如您可能猜到的那样,这是这种情况的常见模式,因为console对象可能并非在每个浏览器(尤其是移动设备)上都可用。

1.)什么是window.console && console.log?

console.log是指用于调试的控制台对象。 对于firefox我使用firebug例如。

但如果控制台不可用,脚本将崩溃。 所以window.console检查控制台对象是否存在,如果是,它使用其日志function打印出一些调试信息。

2.)它必须在代码中吗?

不,它仅用于调试目的

 window.console && console.log(open_date); 

上面的代码只是if条件语句的缩写。 它不一定在那里。 它是出于调试目的。 对于大多数浏览器,您可以按F-12打开浏览器调试控制台。 Chrome内置了调试控制台.Firefox有一个名为FireBug的扩展程序,您可以使用它。 下面是没有’&&’的等效语句。

 if (window.console) console.log(open_date); 

我更喜欢在我的javascript代码的开头添加以下代码,这样我就不必在所有地方都有这些“if”语句。 它确实节省了空间并消除了潜在的错误。

 if (typeof console == "undefined") { window.console = {log: function() {}}; } 

Jon Dvorak上面的评论包含了一种优雅的替代方法:

 console = window.console || {log:function(){}} 

Console.log是浏览器的记录器,它在浏览器控制台上记录消息。 编辑:较低版本的Internet Explorer不支持Console.log

此条件用于防止IE上的错误…因为,不幸的是,在IE(版本8)中我们无法使用console.log(“”)….但是测试人员仍然在Chrome上查看日志…