Javascript 为什么IE实现console.log()与Safari、Chrome和Firefox不同

Javascript 为什么IE实现console.log()与Safari、Chrome和Firefox不同,javascript,internet-explorer,console,Javascript,Internet Explorer,Console,如果使用console.log()时未检查其存在性,则会破坏IE中的代码。一旦使用调试器进行调试,它将开始掩盖实际问题 因为这第二十二条军规,你永远看不到真正的失败 这在Safari、Chrome和Firefox中都不是问题 我在哪里可以将其作为bug(一个非常模糊的bug)归档?IE为什么要这样做?我没有遇到过这个问题console.log即使从未打开过控制台,也可以正常工作 但是,在旧版本的浏览器中,如果没有控制台,则始终可以对其进行填充: console = console || {log

如果使用console.log()时未检查其存在性,则会破坏IE中的代码。一旦使用调试器进行调试,它将开始掩盖实际问题

因为这第二十二条军规,你永远看不到真正的失败

这在Safari、Chrome和Firefox中都不是问题


我在哪里可以将其作为bug(一个非常模糊的bug)归档?IE为什么要这样做?

我没有遇到过这个问题
console.log
即使从未打开过控制台,也可以正常工作

但是,在旧版本的浏览器中,如果没有控制台,则始终可以对其进行填充:

console = console || {log:function() {
    var l = arguments.length, i, arr = [];
    for( i=0; i<l; i++) arr[i] = arguments[i];
    alert(arr.join("\n"));
}};
console=console | |{log:function(){
var l=arguments.length,i,arr=[];

对于(i=0;i我没有遇到此问题。
console.log
工作正常,即使控制台从未打开过

但是,在旧版本的浏览器中,如果没有控制台,则始终可以对其进行填充:

console = console || {log:function() {
    var l = arguments.length, i, arr = [];
    for( i=0; i<l; i++) arr[i] = arguments[i];
    alert(arr.join("\n"));
}};
console=console | |{log:function(){
var l=arguments.length,i,arr=[];

对于(i=0;iIf我们开始问为什么IE做了它做错的每件事…微软产品中的一个Bug?从来没有!嘿。
这是因为IE是一个糟糕的产品,他们的团队忘记了人们实际上需要为它开发。他们的开发工具最初是在IE6中创建的,从那以后就没有更新过。我知道在旧版本的IE中,
控制台
只有在开发工具打开的情况下才存在,没有人知道为什么。我认为IE团队只是想让人们的生活变得悲惨。
@hiroprotation这在IE10中是固定的,我刚刚测试过。如果我没记错的话,这也发生在旧的Firefox中(3.6版?)如果我们开始问为什么IE做的每件事都做错了…微软产品中的一个Bug?从来没有!嘿。
这是因为IE是一个糟糕的产品,他们的团队忘记了人们实际上需要为它进行开发。他们的开发工具最初是在IE6中创建的,从那以后就再也没有更新过。我知道在旧版本的IE中,
 控制台只在开发工具打开的情况下存在,没有人知道原因。我认为IE团队只是想让人们的生活变得悲惨。
@hiroprogator这在IE10中是固定的,我刚刚测试过。如果我没记错的话,这也发生在旧的Firefox中(3.6版?)我刚刚在IE8和IE9上测试了它…我测试了它并验证了错误…我知道在IE8中,如果你没有打开开发工具,
console
未定义的
所以,
console.log
将抛出一个错误并停止JavaScript的执行。好吧,不管我是对是错,垫片仍然可以正常使用控制台替代品。但老实说,如果您试图使用
console.log
进行调试,您应该打开控制台,并且您不应该在生产中保留任何
console.log
调用。+1用于粘贴有效的代码,并且不显示任何意见或起始参数。但请使用
window.console=window.console | |{log:…
因为它依赖于未声明的赋值,请看,我刚刚在IE8和IE9上测试了它…我测试了它w/和w/以验证错误…我知道在IE8中,如果您没有打开开发工具,
控制台
未定义的
所以,
控制台.log
将抛出一个错误并停止JavaScript的执行。好吧,whe不管我是对是错,垫片仍然可以作为控制台的替代品使用。但老实说,如果您试图使用
console.log
进行调试,您应该打开控制台,并且您不应该在生产中留下任何
console.log
调用。+1用于粘贴有效的代码,而不提供任何意见或建议开始参数。但请使用
window.console=window.console | |{log:…
,因为它依赖于未声明的赋值,请参阅