如题:最近小弟用js有一个问题,想请教一下以前都是触发一个函数才执行js,现在我迷惑了是不是不管何种方式引入的js到jsp里面如果遇到function的话,需要调用才执行而如果js里面没有函数,直接写一些代码或者是解析一段代码jsp执行到这,就会运行js里面的内容 ?

解决方案 »

  1.   


    //这里只是定义一个函数,没有调用
    function fun1(){
    }//这里调用了,如果不调用,这个函数不会执行
    fun1();
    //下面写的代码会执行,因为他不是函数,这段代码写在页面的哪里,就在哪里执行
    var str="Hello World";
    alert(str);//立马输出Hello World,不用调动
      

  2.   

    我现在有一个js文件,里面的内容是先执行一个函数a()
    下面是一些var 
    和for循环 我在jsp的 就后面 引入它
    在这之前,onchange有调用a()那么请问执行顺序呢
      

  3.   

    还有这样的 
    $(function(){});
      

  4.   

    jsp 没研究过,大概说说js的解析顺序,js引擎读取一段js代码,首先预解析(这个名字我起的),就是逐行读取全局变量和全局函数,遇到全局变量,把变量的值变为undefind,存在内存中,遇到全局函数,直接存在内存中,这个过程如果发现语法错误,预解析终止。
    我们平时遇到这种情况:
    alert(a)  
    var a=100
    这个弹出undefind,而不是没有这个变量的语法错误,就是因为预解析时候把a调成了undefind存在内存中,
    还有下面我们之所以可以先调用f1,后定义f1函数,也是因为预解析,f1已经存在内存中。
    f1()
    function f1(){ return 123}当预解析完成后,js引擎在从第一行开始逐行运行js代码