Javascript 什么';Firefox和Chrome的区别是什么?
我希望它能工作,但它只能在Chrome上工作,在firefox和IE中,它不会发出任何警报,这是我的代码: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(
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=='
。这就是为什么我得到了一个空字符串,而不是未定义的。