JavaScript修炼之路-筑基篇(三)函数、预解析

   

目录

       一、 函数

        二、预解析


​​​​​​​

   一、 函数

函数就是封装了一段可重复调用执行的代码块。以实现大量代码的重复使用。

例如: function getsum(start,end)

       {

        for (var i = start; i < end; i++)

        {

                 sum+=i;

        }

        console.log(sum);

       }

调用: getsum(1,100);

  1. 函数名一般以动词命名,函数不调用是不会自己执行的

另一种函数声明的方式常见

var shuchu = function(){          //(匿名函数)

        console.log('一个函数表达式');

    }

    shuchu();       //shuchu是一个变量

上述中 function 函数名括号里的输入就是  形参

调用函数时括号里的是  实参

        形参用于接受实际参数,类似于一个变量(不用声明)不调用则不知道值是什么。

2.        函数可以调用另一个函数

3.        函数名()=return 后面的结果

同时 return 后面的代码将不进行执行,同时结束当前函数体的代码。

return只能返回一个值,以最后一个为准。(可返回一个数组)

arguments的使用

当不知道有多少个参数传递时,用arguments来获取

arguments对象中储存了传递的所有实参

 function getsum();

       {

        console.log(arguments);

       }

        getsum(1,2,3,3,3);

实际其是一个伪数组的形式,函数的内置对象可直接使用

具有length属性    console.log(arguments.length)

按索引方式存储数据   ,可按数组方式输出和遍历

不具有数组push,pop等方法

        二、预解析

js引擎运行is分为两步:预解析,代码执行

   1、 预解析   js引擎会把js里面所有的 var 还有 function 提升到当前作用域的最前面。

        )把所有的变量声明提升到当前的作用域前面  不提升赋值操作

        )函数声明提升到当前作用域的最前面   不调用函数

    2、代码执行 从上往下

var a = 18;

    fun();

    function fun(){

        var b = 9;

        console.log(a);

        console.log(b);

        var a = '123';

    }

    //相当于以下代码

    var a;

    function fun(){

        var b;

        var a;

         b = 9;

        console.log(a);

        console.log(b);

        a = '123';

    }

    a = 18;

    fun();

输出underfind  9

f1();

    console.log(c);

    console.log(b);

    console.log(a);

    function f1() {

    var a = b = c = 9;

     //相当于 var a = 9 ; b = 9 ; c = 9;          b 和c被直接赋值当全局变量看

    //集体声明 var a = 9 , b = 9 ,c = 9;

    console.log(c);

    console.log(b);

    console.log(a);

    }

    相当于以下代码

    function f1() {

        var a;

   a = b = c = 9;

   

    console.log(c);

    console.log(b);

    console.log(a);

    }

    f1();

    console.log(c);

    console.log(b);

    console.log(a);

输出 9 9 9 9 9 报错defind;


祝你学习快乐!

上一篇:ASP.NET播客(留言时间,投票IP,留言限字数,上传视频)


下一篇:javaweb学习总结(六)——Servlet开发(二)