JavaScript 函数

2021-05-10 19:51:03 更新

B站关联视频教程:https://www.bilibili.com/video/BV1RA41137yd?p=9

目录

一、什么是函数

二、如何定义自定义函数 function(){}

    1、无参数无返回值

    2、无参数有返回值

    3、有参数无返回值

    4、有参数有返回值

三、函数内部的变量与函数外部变量的区别

    1、变量的作用范围【局部变量,全局变量】

    2、js中加“var”和不加“var”的区别



内容

一、什么是函数

JavaScript 函数是被设计为执行特定任务的代码块
JavaScript 函数会在某代码调用它时被执行。

<script>
    function funsum() {
        document.write(3);
    }
    funsum();// 3
</script>

二、如何定义自定义函数 function(){}

function 函数名(参数1,参数2,……){
    函数体内容
}


函数可以有参数,也可以没有参数,可以有返回值,也可以没有返回值【只是一个动作函数】。


1、无参数无返回值:

<script>
    function funsum() {
     document.write(1+2+3+4+5);
    }
    funsum();//15
</script>


2、无参数有返回值:

<script>
    function funsum() {
      return 1+2+3+4+5;
    }
    document.write(funsum());// 15
</script>


3、有参数无返回值:


<script>
    function funsum(a,b) {
      document.write(a+b);
    }
    funsum(1,2);//3 ,函数是一个动作函数,没有返回值。
</script>


4、有参数有返回值:

<script>
    function funsum(a,b) {
        return a+b;// 该函数返回 p1 和 p2 的和
    }
    document.write(funsum(1,2));//3
</script>

函数存在的意思是模块化,能够被多次调用。所以有参数有返回值的定义方式是常用定义。因为只要传递参数过去,就有结果了。

三、函数内部的变量与函数外部变量的区别
1、变量的作用范围【局部变量,全局变量】

局部变量:函数内部使用var定义的变量。

全局变量:函数外部定义的变量【不管有没有使用var定义】


2、 js中加“var”和不加“var”的区别

  • 函数外部的变量,加var是全局变量,不加var类似全局变量【它并不是声明了一个全局变量,而是创建了一个全局对象的属性】

  • 函数内部的变量,加var声明的是局部变量,不加var的是对全局变量的引用。

    <script>
        var a=1; //全局变量
        b=2;//全局变量 全局变量的一个属性
        function js() {
            a=3;//a是对全局变量的引用,赋值
            document.write(a);
        }
        js();// 3
    </script>
    
      <script>
        var a=1; //全局变量
        b=2;//全局变量 全局变量的一个属性
        function js() {
            var a=3;//局部变量
            document.write(a);
        }
        js();// 3
    </script>
    
    
      <script>
        var a=1; //全局变量
        b=2;//全局变量 全局变量的一个属性
        function js() {
            var a=3;//局部变量
        }
        js();
        document.write(a);// 1
    </script>
    
     <script>
        var a=1; //全局变量
        b=2;//全局变量 全局变量的一个属性
        function js() {
             a=3;//a是对全局变量的引用,赋值。
        }
        js();
        document.write(a);//3
    </script>

在严格模式中,为未声明的标识符赋值将会抛引用错误。所以。在函数外声明的变量,也建议使用var 定义。