函数

138 阅读5分钟

初识函数

函数

重复利用代码,把要重复利用的代码放在一个函数当中,在其它用到的地方调用下就可以了

函数的定义

function 函数名(){

//要复用的代码

}

函数的调用

函数名称()

事件调用

定时器调用

<body>
    <div onclick="sum(7,8)">加法</div>
    <a href="javascript:sheng(8,9)">乘法</a>
    <script type="text/javascript">
    //  调用方式
//      函数名称()
//事件调用
//链接调用
//定时器调用

      var n,m,sum1,chen;
//      
//      n=5+2;
//      8+7
//      777777+88888
//      
//      sum(7,8888);
//      sum(5,2);
//      sum(5,2);
      function sum(m,n){
        sum1=m+n
        console.log(sum1)
      }
      function sheng(t,w){
        shen=t*w
        console.log(shen)
      }
//      sheng(9,8);
//      sheng(9,78888)
    </script>
  </body>

函数的类型

1、函数声明

语法:funciton 函数名(参数){

要执行的代码

调用: 函数名(参数)

把函数声明成函数表达式,在后加一个小括号

2、函数表达式

语法: var 变量=function(参数){

要执行的代码

}

调用:变量名(参数)

直接在这个名字后加小括号

注:函数表达式里面的function后面如果有名字的话,在调用的时侯不能拿这个名字去调用 

    <script type="text/javascript">
//        1、函数声明
//        语法:funciton 函数名(参数){
//        要执行的代码
//        }
//        调用: 函数名(参数)
//          
//        2、函数表达式 :把函数声明成函数表达式,在后加一个小括号
//        语法:
//        var 变量=function(参数){
//          要执行的代码
//        }
//        调用:变量名(参数)
//          直接在这个名字后加小括号
//        注:函数表达式里面的function后面如果有名字的话,在调用的时侯不能拿这个名字去调用


        function sum(m,n){
          console.log(m+n);//11
        };
        sum(5,6);
        
        var add=function(m,n){
          console.log(m,n);//7,8
        }
        add(7,8)
      
       var add1=function min(m,n){
         console.log(m,n)
       }
       add1(9,10);
    </script>

函数的参数

从函数的外面向里面传递数据,在函数里可以接收到这些数据,并且能够使用它,这些数据叫做参数。

参数放在小括号里,可以放0个或多个,每个参数用逗号分开。

形参:形式上的参数,在函数声明的小括号里 形参的值由实参决定。

实参:实际上的参数,放在函数调用的小括号里。

实参必须与形参一一对应,在调用函数时,要把 实际参数传够数量,如果有一个实参没有传,那么它的值就是undefined 形参实际上是在函数里声明的变量,变量的初始值是undefined。在调用的时侯,传的实参会把初始值给改成真实的值

<script type="text/javascript">
      //函数的参数
      add(3,5);//实参就是实际的参数
      function add(m,n,t){//形参,形式上的参数
        var m,n,t
        // m=3,n=5,t=undefined;
        console.log(m,n,t);//3,5,undefind
        console.log(m+n);//8
      }
      //在写程序时先定义函数在调用
      function sum(){
        alert("这是一个sum")
      }
      sum();
    </script>

arguments对象

它是函数内置的对象,代表了所有实参的集合,它是类数组,类数组的每一项都有自已对应的下标,它还有个length的属性,代表了实参的个数。

<script type="text/javascript">
      //this函数内置的一个对象,谁调用的this就是谁
      //event 
      //arguments它是函数内置的对象,代表了所有实参的集合,它是类数组,类数组的每一项都有自已对应的下标,它还有个length的属性,代表了实参的个数。
      var obox=document.getElementById("box");
      var obox1=document.getElementById("box1");
      obox.onclick=function(event){
        console.log(this);
        console.log(event);
        this.style.backgroundColor="red"
      }
      obox1.onclick=function(){
        console.log(this);
      
      }
       add()
      function add(){
        console.log(this)
      }
      //arguments
      min(5,6,7,8)
      function min(){
        console.log(arguments[0]);//5
        console.log(arguments[1]);//6
        console.log(arguments[2]);//7
        console.log(arguments[3]);//8
        console.log(arguments[4]);//undefined
      }
      function max(){
        console.log(arguments[0]);
      }
      max();
//      
//      function sum(){
//        var s=0;
//        for(var i=0;i<arguments.length;i++){
//          s+=arguments[i];
//        }
//        //console.log(s);
//        return s;
//      }
//      var sum=sum(10,9,8,7,6,5,4,3,2,1);
//      console.log(sum);//55
      function sum(){
        var s=0;
        for(var i=0;i<arguments.length;i++){
          s+=arguments[i];//s=s+arguments[3] 
        }
        //console.log(s);
        return 8;
        console.log(s)
      }
      var sum=sum(10,9,8,7,6,5,4,3,2,1);//sum=8
      console.log(sum);//8
      
      
      
      function aa(n){
        if(n==3){
          return;
        }
        for(var i=1;i<10;i++){
          if(i==2){
            return;//返回 后面的语句不执行
          }
          console.log(i);//1
        }
      }
      aa(4);
    </script>

$

封装简单的函数

function $(id){

retrun document.getElementById(id);

}

$(‘btn’).onclick=function(){

}

<body>
    <div id="box">111</div>
    <div id="box1"></div>
    <div id="box2"></div>
    <script type="text/javascript">
      var obox=$("box");
      var obox1=$("box1");
      var obox2=$("box2");
         obox.style.backgroundColor="red"
      
      function $(id){
        return document.getElementById(id)
      }  
    </script>
  </body>

函数的返回值

函数的返回值:函数的返回结果

return

1、返回函数的运算结果

return 值

如果函数里有return,那么这个函数的近观回结果就是return后面的值(运算的结果)

如果函数里没有return,那么这个函数的返回结果就是undefined

2、阻止函数继续运行

return 后面的代码是不会执行的

写一个css函数 传两个函数代表获取属性值 传三个参数代表 设置属性值

getComputedStyle(box).width

break、continue、return

break:结束循环跳出整个循环体。

continue: 退出本次循环,进入下次循环

return 返回,让函数停止执行,它只用在函数内。

This介绍

this关键字

函数中使用

函数被调用确定this的值

事件调用函数,this指向触发事件的对象

自定义属性

自定义属性

元素本身的属性 id className value innerHTML

给元素添加的属性 

<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
      div{display: none;width:400px;height:200px;background: gray;}
    </style>
  </head>
  <body>
    <input type="button" value="111" style="background: yellow" cc=1/>
    <input type="button" value="222" />
    <input type="button" value="333"/>
    <input type="button" value="444"/>
    <div style="display: block;">111</div>
    <div>222</div>
    <div>333</div>
    <div>444</div>
    <script type="text/javascript">
      window.onload=function(){
        var inputs=document.getElementsByTagName("input");
        var divs=document.getElementsByTagName("div");
        for(var i=0;i<inputs.length;i++){
          inputs[i].cc=i;
          inputs[i].onclick=function(){
            for(var j=0;j<inputs.length;j++){
              inputs[j].style.backgroundColor="";
              divs[j].style.display="none";
            }
            this.style.backgroundColor="yellow";
                 divs[this.cc].style.display="block"
          }
        }
      }
    </script>
  </body>