init();
    function init() {alert("ddd");};为什么这样不报错呢?先执行再定义...

解决方案 »

  1.   

    这个。
    init()
    var init = function() {
      alert('ddd');
    }试试
      

  2.   

    js引擎对脚本代码先有一个编译的过程,编译时会进行语法分析,能够找到init函数
      

  3.   

    但是他的处理步骤不一样哟
    就这个例子来说,他会先预编译function 然后再顺序执行我那个你说可以,可以说下什么浏览器嘛
      

  4.   

    var i = 0;
    function test() {
       alert(i);
       var i = 5;
    }test();看看这个结果~
      

  5.   

    额~~~原来你那个不可以~~~我忘记前面加VAR 了..
    可以解释原因吗??谢谢!!
    第二个结果是UNDEFINED..求解答..
      

  6.   

    引自<js权威指南>
    从技术上说,function语句并非是一个语句.在js程序中,语句会引发动态的行为,但是函数定义描述的是静态的程序结构.语句是在运行时执行的,而函数则是在实际运行之前,当js代码被解析或者被编译时定义的.