我在FF输出定义函数的名称为_,定义函数fnIE,FF试试{} catch(){}错误?
function _(){};
function fn(){
try{
console.info(_);
}catch(_){
//
}
return _;
}
fn();
_(),但IE8输出定义,为什么这个结果呢?
我在FF输出定义函数的名称为_,定义函数fnIE,FF试试{} catch(){}错误?
function _(){};
function fn(){
try{
console.info(_);
}catch(_){
//
}
return _;
}
fn();
_(),但IE8输出定义,为什么这个结果呢?
编辑 @kevinpeng感谢更新质疑原始版本
IE7不支持window.console(我不能测试,因为我没有它)
IE8的支持,如果你打开控制台开发者工具F12
在firefox中你可以使用,没问题。
,这样不会有错误代码:
你可以做到这一点,为的console.log:
function myConsole(param) {
if (window.console && window.console.log) {
window.console.log(param);
}
}
在Firefox,并遵循ES3/ES5,返回值为任何其他浏览器应该是你调用“_”的函数对象。
但是,在IE8中,它会将任何catch-statement变量绑定提升到函数的顶部。例如,
function fn() {
try {
return foo;
}
catch(foo) {}
}
有效呢
function fn() {
var foo;
try {
return foo;
}
catch(foo) {}
}
注意这是相同的VAR语句(创建它们,并在函数的开始设置为undefined,并分配一个特定的值时,执行到VAR声明)。