JavaScript中具有条件声明函数的浏览器之间的行为不一致

时间:2013-11-30 15:38:16

标签: javascript function

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或浏览器中的错误还是直接在条件语句中声明函数是错误的?

0 个答案:

没有答案