Javascript IE,FF尝试{}catch(){}bug?
我将函数名定义为1,定义了函数fnJavascript 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控制
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语句时被指定一个特定值)