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

Javascript 什么是window.console&&;console.log?,javascript,jquery,Javascript,Jquery,什么是window.console&&console.log?它必须在代码中吗?通过此脚本,IE(所有版本)无法运行-->只有在左侧表达式为truthy时,才会计算右侧表达式。这就是逻辑AND运算符的工作原理 它基本上是 if (open_date) { open_date = get_date_from_string(open_date); window.console && console.log(open_date); wi

什么是
window.console&&console.log
?它必须在代码中吗?通过此脚本,IE(所有版本)无法运行-->

只有在左侧表达式为
truthy
时,才会计算右侧表达式。这就是逻辑AND运算符的工作原理

它基本上是

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

您可能猜对了,这是这种情况下的常见模式,因为
console
对象可能在每个浏览器(尤其是手机)上都不可用。

console.log是浏览器的记录器,用于在浏览器控制台上记录消息。 编辑: 更低版本的Internet Explorer不支持Console.log。什么是window.Console&&Console.log?

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

但是如果控制台不可用,脚本将崩溃。因此,window.console检查控制台对象是否存在,如果存在,则使用其日志函数打印一些调试信息

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

不,它只用于调试目的

if( window.console ) {
    console.log( open_date );
}
上面的代码只是if条件语句的缩写。它不一定要在那里。它用于调试目的。对于大多数浏览器,您可以点击F-12打开浏览器调试控制台。Chrome内置了一个调试控制台。Firefox有一个名为FireBug的扩展,您可以使用它。下面是不带“&&”的等效语句

window.console && console.log(open_date); 
我更喜欢在javascript代码的开头添加以下代码,这样就不必到处都有这些“if”语句。它确实节省了空间并消除了潜在的错误

if (window.console) console.log(open_date); 
乔恩·德沃夏克(Jon Dvorak)的上述评论包含了一种优雅的替代方法:

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

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

可能与@Andy重复,回答很好(+1)。还应该提到代码需要在那里,因为并非所有浏览器都支持
控制台
(操作问题
它必须在代码中吗?
)我仍然更喜欢这种方法:
控制台=窗口.console |{log:function(){}/*,…*/}
console = window.console || {log:function(){}}