重新声明var console



我正在使用Hoptoad来获取我的JavaScript的错误报告,最近我得到了这个错误:

重新声明var console

回溯不是很有用:

internal: :
:0:in `{anonymous}()'

,我知道它发生在"Mozilla/5.0 (X11;U;Linux x86_64;应用;rv:1.9.2.16) Gecko/20110323 Ubuntu/10.10 (maverick) Firefox/3.6.16",但我不知道控制台将如何重新声明。你有什么主意吗?下面是我如何声明console:

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

不能有条件地声明变量。在执行任何代码之前,将解析声明并将其作为激活对象的属性添加。你的代码相当于:

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

这也被称为"提升"(不是我喜欢的术语),因为声明被有效地"提升"到函数的顶部或任何其他代码之上。

在同一个函数或作用域中多次声明一个变量是无害的,但它可能表明对作用域的误解(例如期望块作用域)或无意中重用标识符。

请编辑此部分以确认或否认:

方法是重新定义window.console:

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

相关内容

  • 没有找到相关文章

最新更新