zoukankan      html  css  js  c++  java
  • JavaScript 函数(一)

    一、函数概述

      1、概述

        把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用函数的作用就是封装一段代码,将来可以重复使用。

        在JavaScript中,函数也作为一种数据类型存在,而且是引用数据类型,函数名就是指向其内存空间地址的引用。

        Demo:

    1 var a = function() {
    2     return 2;
    3 };
    4 var b = a;
    5 a.fname = "tom";
    6 alert(b.fname); //结果为tom

    二、使用函数

      1、函数的定义

        a、函数声明

         语法格式

    function 函数名(){
      // 函数体
    }

        b、函数表达式(匿名函数)

         语法格式

    var fn = function() {
      // 函数体
    }
    

          注意

        •  只定义函数并不会执行,只有当函数被调用才会执行;
        •     函数命名使用 动词+名词 的格式,表示做一件事情。
        •     在 Java 中函数(方法)允许重载,但是在 JS 中函数的重载会直接覆盖掉上一次的定义,即不允许重载。

      2、函数的调用

        语法格式:

    函数名(实际参数列表);
    

             注意:函数体只有在调用的时候才会执行,可以调用多次,重复使用,调用JavaScript函数时系统不检查传入参数的个数和类型

      3、函数的参数

        函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部。

        带参数的函数声明 语法格式

    function 函数名(形参1, 形参2, 形参...){
      // 函数体
    }

         带参数的函数调用 语法格式:

    函数名(实参1, 实参2, 实参3);

         a、形参与实参

         形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。

         实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。

          b、

        扩展:当传入的参数为基本数据类型时,在函数内部改变形参的值,并不会影响外部实参的值。

      4、函数的返回值

        当函数执行完成后,期望函数给一些反馈进行后续的运算,这个时候就需要函数的返回值。

        a、返回值语法

    //声明一个带返回值的函数
    function 函数名(形参1, 形参2, 形参...){
      //函数体
      return 返回值;
    }
    
    //可以通过变量来接收这个返回值
    var 变量 = 函数名(实参1, 实参2, 实参3);

        b、注意事项

        •  如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
        •    如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
        •    如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
        •    数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。

    三、函数的 arguments 隐形参数

      JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组(类似于Java中的可变长参数,因此及可以进行遍历。

      Demo:

     1   // 求任意个数的和
     2     function getSum() {
     3       var sum = 0;
     4       for (var i = 0; i < arguments.length; i++) {
     5         sum += arguments[i];
     6       }
     7       return sum;
     8     }
     9 
    10     var sum = getSum(5, 1, 3, 4);
    11     console.log(sum);

    总结:

      (1)方法定义是,形参的类型不用写,返回值类型也不写。

      (2)方法是一个对象,如果定义名称相同的方法,会覆盖

      (3)在JS中,方法的调用只与方法的名称有关,和参数列表无关

      (4)在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数

  • 相关阅读:
    怎么说???
    再给自己一点鼓励
    还是不要看新闻的好
    系统架构师
    朋友
    未来的路
    I now have a dream
    纪念死去的手机
    全局规划
    终于要上战场了!
  • 原文地址:https://www.cnblogs.com/niujifei/p/11333844.html
Copyright © 2011-2022 走看看