美文网首页
js中的函数

js中的函数

作者: 无崖老师 | 来源:发表于2020-04-01 19:48 被阅读0次
函数的概念

函数就是代码块,可以多次调用,很容易实现模块化编程。

函数的好处
    1)减少代码开发时间

     2) 模块化编程

     3)  可以重复使用
函数的定义(重点)
形式1 function fn(){
    // 函数体内功能代码
}

        function---为声明函数的关键字,指出这是一个函数
        fn ------是函数的名称,类似于永来存储函数的变量
        () ------为函数的参数,多个参数用 , 隔开
        {} ------放置函数体,用于执行时,所要编译的代码段

函数调用

函数名();
fn() ;

直接写函数名 加上 小括号“()”

例1:声明一个函数并且调用

     //  function fn(){}
      // 函数名的规则和变量一样
      function fn(){
          document.write('枝上柳绵吹又少,天涯何处无芳草');
      }
      // 函数的调用
      //函数名()
       fn();
函数的参数(重点)
形式3  function fn(参数1,参数2,....,参数N){
// 函数体内功能代码
     
}

初体验:值的传递

      // 参数的位置要一一对应
       // 形参的个数和实参的一样多
      //param1,param2,param3 就是形参,我们在函数后面仅仅声明,没有赋值 
     function fn(param1,param2,param3){
         document.write(param1+'<br />');
         document.write(param2+'<br />');
         document.write(param3);
     }
     // 函数调用时,传递的就是实参
    fn('岂曰无衣','赳赳老秦','共赴国难');

例1:输入成绩判断级别

      // :输入成绩判断级别
      function ji(score){
           if(score>90){
               alert('优秀了');
           }else if(score>70){
               alert('良好了');
           }else if(score>60){
               alert('及格了');
           }else{ 
             alert('回去烤红薯');
           }
      }
    // 调用函数,且传入成绩
    //ji(50);
    ji(200);

例2:输入两个数比较大小

    // 传入两个数字比较大小
    //1 参数之间使用,隔开
    // 2 函数接受参数时,按照位置的对应关系来的
      function bi(a,b){
         if(a>b){
             document.write(a+'是大的,'+b+'是小的');
         }else{
            document.write(b+'是大的,'+a+'是小的');
         }
      }
    // 调用的时候,传入参数,多个参数用,隔开
    // 调用的时候,注意传入参数的顺序
   // bi(23,45);
     bi(89,3);

脚下留心:函数有预编译(预加载)的过程,可以实现调用在前,声明再后

总结:

1 声明函数

function 函数名(参数1,参数2,参数3,....){

 函数体

}

2 调用函数

函数名(1,2,3);

脚下留心

1、函数名的命名规范和变量的命名规范一样
2、函数可以放在任何地方,前提必须在同一个网页中才可以调用
3、小括号里面的参数可以写多个起占位作用,可以在函数体内直接当变量使用,称之为:形参;当调用函数传递的真正的数据称之为:实参

使用函数打印九九乘法表
        function createNine(){
                for(var i=1;i<=9;i++){
                    for(var j=1;j<=i;j++){
                        document.write(j+"*"+i+"="+i*j +"&nbsp;")
                    }
                    document.write("<br>");
                }
            
        }
        createNine()
    
事件与函数的关系(了解)

函数是通过函数名来调用的
一般函数的调用要结合“事件”来调用

调用的方式:

方法一(通过HTML标签调用):<标签 事件=”函数名()”/>
方法二(JS调用):对象.事件=函数

例1:直接使用onclick在行内绑定函数

    <!-- onclick就是事件 当点击事件时调用函数 fn()-->
    <input type="button" name="" onclick="fn()" value="点我" id="btn">
    <script>
    function fn(){
        alert('what are you你在弄啥嘞');
    }

例2:直接在id上绑定事件

    <input type="button" id="btn" value="点击">
  function show(){
        alert(1111);
    }
    btn.onclick = show;

练习与应用

  1. 编写一个函数,计算两个数字的和、差、积、商

要求:使用传参的形式

    function fn(num1,num2){
        var sum1 = num1+num2;
        var sum2 = num1-num2;
        var sum3 = num1*num2;
        var sum4 = num1/num2;

        document.write('两个数的和是'+sum1);
        document.write('<br />');
        document.write('两个数的差是'+sum2);
        document.write('<br />');
        document.write('两个数的积是'+sum3);
        document.write('<br />');
        document.write('两个数的商是'+sum4);
    }

2定义一个函数:传递一个参数,判断该数字是否是一个“素数/质素”。

如果是,就输出“数字xx是素数”,否则就输出“数字xx不是素数”

  function pan(num){
        // 3 添加数字类型的判断
         // 质数(素数)只能被1和本身整除,不能被其他数整除
        // 记录被整除的次数
        var count = 0;
       // 需要把小于这个数的都循环一次,判断取余是否为0
        for(var i=2;i<num;i++){
            // 使用参数除以每一个小于它的整数,看能否除尽
            if(num%i==0){
                // 能被整除,说明非素数,就要记录一次
              count++;
            }
        }
        // 如果没有被整除的记录,说明这就是素数
        if(count==0){
            document.write('这个是素数'+num);
        }
     }
     pan(53);

讲解

函数的两种创建方式:声明式和赋值式(重点)

通过关键字function声明:

 function fn(){}

通过变量赋值(匿名函数):

 var fn = function(){};

这种方式下,虽然这个函数没有名字,但是这个函数赋值给了fn,因此通过变量fn也能调用到这个函数

以上两种声明方式等价

基本使用

    // 声明一个变量,赋值的是函数
       var p =  function(){
            document.write('Hello JS');
        }
     // 匿名函数的调用
      p();

都可以使用 函数名/变量名+() 调用执行

例1:使用函数将一个人年龄姓名,拼接输出

    <script>
        var p = function(name,age){

           document.write("姓名:" + name + ",年龄" + age);

        }

        // 调用p方法

        p('张三',19);

    </script>

函数的返回值(return)(重点)

return是无条件退出当前方法/函数,并且返回数据(注:如果没有数据返回undefined)

不仅可以返回值,还可以终止程序的执行

例1:创建一个比较大小的函数,且返回比较结果

function maxNum(num1,num2)
{
    // 比大小功能
    if(num1 > num2)
    {
        // document.write(num1);
        return num1;
    }else{
        // document.write(num2);    
        return num2;
    }
}

var funReturnVal = maxNum(3,0);
console.log(funReturnVal); // 3
var funReturnVal = maxNum(9,8);
console.log(funReturnVal);  // 9

例2:验证return终止代码的继续执行

   function fn(){
      document.write('今儿下雨了<br />');
      return '下的真大';
      document.write('淅沥沥,哗啦啦');
   }

  var res =  fn();

  document.write(res)

形参和实参(重点)

形参和实参都可以有多个,用逗号隔开,多个形参和实参之间必须相互一一对应

   function fn(a,b,c){            //a = 1, b = 2, c = 3
       console.log(a+b+c);        //6
   }

   fn(1,2,3);
     如果形参和实参不一致:
       形参的数量比实参的数量多,多出来的形参,为undefined;
       形参的数量比实参的数量少,多出来的实参,传递到arguments对象中;
       形参的数量与实参的数量相等,一一对应。

例: 将年龄和姓名动态的输出如 姓名XX,年龄XX

<script>

// 创建一个方法【动态】输出人的姓名和年龄信息

function p(name,age){

    document.write("姓名:" + name + ",年龄" + age);

}

// 调用p方法

p('张三',19);

document.write("<hr />");

// 调用p方法

p('李四', 30);

</script>

总结

1、形参的顺序必须和实际参数一一对应

2、形参的个数必须和实参的个数一样多

参数的默认值(重点)

给函数的参数设置默认值,代用函数的时候,这个参数是不用传值的.

        // 参数的默认值:就是在设置参数的时候给一个值
        // 当后面调用函数,这个参数可以不用传参
      function fn(name,age=18,sex='女'){
          document.write('我的女朋友叫'+name+',年龄是'+age+',性别是'+sex)
      }
// fn('刘亦菲',32,'女');
//fn('贾玲',31)
// 有默认值的参数,调用时不用传递参数
fn('小姐姐',23);

系统函数(记忆)

注:NaN(表示非数字)

parseInt(data) - 将字符串转化为整数(类型为:number)

document.write(parseInt('11'));         // 11

Number(data) - 将字符串转化为数字(类型为:number)

document.write(Number(11));             // 11

document.write(Number(11.2));               // 11.2

document.write(Number('11'));               // 11

document.write(Number('11sdsf'));           // NaN

脚下留心:data只能是数字,否则会返回NaN(非数字)

isNaN(data) - 判断data是否非数字(了解)

如果直接给定字符串,内部的转化机制,参考Number();

document.write(isNaN(11));              // false

document.write(isNaN(11.2));            // false

document.write(isNaN('11.2'));      // false

document.write(isNaN('11sdsf'));        // true 

document.write(isNaN('sdsf11'));        // true 

document.write(isNaN('11.2sdsf'));  // true 

document.write(isNaN('sdsf11.2'));  // true 

脚下留心:

1、true - 非数字,false - 是数字

2、data只能是数字,否则返回(true)表示非数字

parseFloat(data) - 将字符串转化为浮点数(类型为:number)

document.write(parseFloat('11'));               // 11

document.write(parseFloat('11sdsf'));       // 11

document.write(parseFloat('sdsf11'));       // NaN

document.write(parseFloat('11.2sdsf'));     // 11.2

document.write(parseFloat('sdsf11.2'));     // NaN

脚下留心:

1、首字母必须是数字,否则返回(NaN)表示非数字

Math.random() 产生随机数

产生0-1之间的随机数,但是不包含0和1

      // 随机数的产生,验证码的效果
      var num1 = parseInt(Math.random()*10);
      var num2 = parseInt(Math.random()*10);
      var num3 = parseInt(Math.random()*10);
      var num4 = parseInt(Math.random()*10);
      document.write(num1 +'&nbsp'+num2+'&nbsp'+num3+'&nbsp'+num4);

Math.ceil() 即向上取整

    var num1 = 3.45567;
    var num2 = Math.ceil(num1);
    document.write(num2);

Math.floor 即向下取整

     var num3  = Math.floor(num1);
     document.write(num3);  // 3

toFixed()保留两位小数

  var num =2.446242342;  
      num = num.toFixed(2); 
      console.log(num);

多学一招:

保留两位小数的做法

var num5  = parseInt(num1*100)/100;
    document.write(num5);

拓展(了解)

函数可以作为参数

通常,我们把作为参数传递的函数叫做回调函数

     function fn1(fn){
        document.write('热不热');
        // 因为参数是函数,所以可以直接调用
        fn();
     }
    var bear = function(){
        alert('好热,好热,扎啤一杯');
    }
    fn1(bear);

函数可以作为返回值

在js高级中,闭包会使用到。

  function fn(){
          return function(){
              alert('小龙虾配扎啤');
          }
      }
   var bear =  fn();
   /**
    bear = function(){
              alert('小龙虾配扎啤');
          }
   */
   bear();

总结:

函数的声明方式:

有名函数 function fn(){}

匿名函数 function(){}

return 返回函数的值,在哪里调用,就返回到哪里,终止函数的继续执行

形参和实参:形参和实参的位置要一一对应

参数的默认值:形参声明的时候设置默认值,调用的时候不用传.

随机数 Math.random()

相关文章

  • this

    this在js中主要研究的是函数中的this,不代表函数外没有this,函数外的this指向window js中的...

  • 2018-12-01

    js中括号操作属性 js函数 js换肤 变量和函数预解析 匿名函数 函数传参 函数return关键字 流程控制语句...

  • js中函数的函数

    函数是支撑一门编程语言的重要内容,在JavaScript(下面简称js)中,函数有多种声明和调用方式,而且函数的位...

  • 前端面试题(持续补充)

    js,node.js基础: 闭包 闭包是能够读取其他函数内部变量的函数。在js中,只有函数内部的子函数可以访问内部...

  • 函数如何在 JS 中是一等公民

    所谓一等公民,就是指函数在 JS 中可以作为变量,函数参数,函数返回值。 JS 中函数是一种特殊的对象。函数与对象...

  • JS中的数学函数Math

    JS中的数学函数MathMath 称为数学函数,属于对象类型的函数

  • 前端JS进阶二(ES6-Class语法)

    Class和普通构造函数有何区别 前端会使用ES6中的Class来代替JS中的构造函数 JS 构造函数 Class...

  • JS中的函数

    函数:预先定义好的,可以被反复利用的代码块 函数不调用不执行 格式:function fn(){//代码} fn...

  • js中的函数

    函数 命名函数 function show(){ //函数的定义 code } show() //函数的...

  • JS中的函数

    函数: function(){} 函数声明: function name(){ } 函数执行: name(); 函...

网友评论

      本文标题:js中的函数

      本文链接:https://www.haomeiwen.com/subject/ubxzuhtx.html