1.函数自执行

    JavaScript中不像C#中那样要求所有路径都有返回值,没有返回值就是undefined

    (function(){alert(1);}()); 

    (function(){alert(1);})(); 

    !function(){alert(1);}(); 

    void function(){alert(2);}(); 

2.可变参数

      js函数无法像C#方法那样重载 下面的代码等于是对a函数重新定义

           function a() {

               alert("无参函数");

           }

           function a(p1) {

               alert("一个参数函数");

           }

           function a(p1,p2) {

               alert("两个参数函数");

           }

    //结果全部是 两个参数函数 

           a();

           a(2);

           a(1, 2);

 利用arguments内置数组


  function css() {

            if(arguments.length==2) //取值

            {

                return arguments[0].style[arguments[1]];

            }

            else {

                arguments[0].style[arguments[1]] = arguments[2]; //赋值

            }

        }

        window.onload = function () {

            var oDiv = document.getElementById('div1');

            alert(css(odiv, 'width'));

            css(odiv, 'background', 'green');

        }

3、预解析

        var a = 10;

        function A()

        {

            alert(a); //undefined

            var a = 20;

//var a;

//alert(a);

//a=20;

        }

        A();

//结果20        

        function Test()

        {

            function A() {

                return 10;

            }

            alert(A());

            function A() {

                return 20;

            }

        }

        Test();

开启定时器:

setInterval 间隔性

setTimeout 延时型

停止定时器(根据返回值)

clearInterval()

clearTimeout()

定时器执行函数 参数为 "函数名()" 如果是function(){}会立即且只执行一次