Google Chrome警告“您好!”而Mozilla Firefox警告“嗨!”运行此代码时:
if (true) {
function hello() {
alert("Hi!");
}
hello();
} else {
function hello() {
alert("Hello!");
}
hello();
}
但是,当写为函数表达式时,两个浏览器都将返回“Hi!”
var hello;
if (true) {
hello = function() {
alert("Hi!");
}
hello();
} else {
hello = function() {
alert("Hello!");
}
hello();
}
我不理解在有条件声明的函数的浏览器中这种不一致的行为吗?
它是JavaScript或浏览器中的错误还是直接在条件语句中声明函数是错误的?