Javascript 什么';Firefox和Chrome的区别是什么?

Javascript 什么';Firefox和Chrome的区别是什么?,javascript,browser,Javascript,Browser,我希望它能工作,但它只能在Chrome上工作,在firefox和IE中,它不会发出任何警报,这是我的代码: var name; function say() { alert(name); } function execute(someFunction, value) { name = value; someFunction; } execute(say(), "Hello"); 代码显然是错误的: execute(say(), "Hello"); 这将say(

我希望它能工作,但它只能在Chrome上工作,在firefox和IE中,它不会发出任何警报,这是我的代码:

    var name;
function say() {
    alert(name);
}
function execute(someFunction, value) {
    name = value;
    someFunction;
}
execute(say(), "Hello");

代码显然是错误的:

execute(say(), "Hello");
这将
say()
的返回值传递给
execute
。但是,您希望传递函数,因此使用
execute(说“Hello”)
并在该函数中使用
someFunction()
执行它



尽管它可能/希望不再重要,但该代码在Firefox中仍然有效-它会提醒
未定义的
,因为
say()
execute()
运行之前执行。同样的事情也发生在Chrome中——但是,它使用了一个空的警报框,而不是显示字符串
未定义的
,因为Chrome(或者至少是它的开发者控制台)显然有一个全局变量?name?默认情况下定义为空字符串。

代码明显错误:

execute(say(), "Hello");
这将
say()
的返回值传递给
execute
。但是,您希望传递函数,因此使用
execute(说“Hello”)
并在该函数中使用
someFunction()
执行它



尽管它可能/希望不再重要,但该代码在Firefox中仍然有效-它会提醒
未定义的
,因为
say()
execute()
运行之前执行。同样的事情也发生在Chrome中——但是,它使用了一个空的警报框,而不是显示字符串
未定义的
,因为Chrome(或者至少是它的开发者控制台)显然有一个全局变量?name?默认情况下定义为空字符串。

execute(说“Hello”)
执行(说“你好”)o rly?Chrome开发者控制台中未定义meAh的Chrome警报,
name=='
。这就是为什么我得到了一个空字符串而不是
未定义的
?Chrome开发者控制台中未定义meAh的Chrome警报,
name=='
。这就是为什么我得到了一个空字符串,而不是
未定义的