Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE,FF尝试{}catch(){}bug?_Javascript_Internet Explorer_Firefox - Fatal编程技术网

Javascript IE,FF尝试{}catch(){}bug?

Javascript IE,FF尝试{}catch(){}bug?,javascript,internet-explorer,firefox,Javascript,Internet Explorer,Firefox,我将函数名定义为1,定义了函数fn function _(){}; function fn(){ try{ console.info(_); }catch(_){ // } return _; } fn(); 在FF输出中,但IE8输出未定义,为什么会出现这种结果 编辑@kevinpeng感谢更新原始版本 ie7不支持window.console(我无法测试,因为我没有它) 如果您通过F12打开开发者工具,ie8支持it控制

我将函数名定义为1,定义了函数fn

function _(){};

function fn(){ 
    try{
       console.info(_);
    }catch(_){
       //
    } 
    return _;
}

fn(); 

在FF输出中,但IE8输出未定义,为什么会出现这种结果

编辑@kevinpeng感谢更新原始版本

ie7不支持window.console(我无法测试,因为我没有它)
如果您通过F12打开开发者工具,ie8支持it控制台

在firefox中,您可以使用,没有问题

为了避免代码中出现错误:

对于console.log,您可以执行以下操作:

function myConsole(param) {
    if (window.console && window.console.log) {
        window.console.log(param);
    }
}

在Firefox和ES3/ES5之后的任何其他浏览器中,返回值应该是您调用的函数对象“\ux”

然而,在IE8中,它将所有catch语句变量绑定提升到函数的顶部。e、 g

function fn() {
  try {
    return foo;
  }
  catch(foo) {}
}
有效地

function fn() {
  var foo;
  try {
    return foo;
  }
  catch(foo) {}
}
注意,这是相同的var语句(它们在函数开始时被创建并设置为未定义,并在执行到达var语句时被指定一个特定值)