zoukankan      html  css  js  c++  java
  • 函数

    创建普通函数(分为系统)

    语法:

    // 使用自定义函数,将多个地方使用的代码封装到一个函数中
    function
    函数名(){ 函数体——要封装的反复执行的代码 }

    例1:

    function say(){
        console.log('hello');
        console.log('word');
    }
    // 调用
    say();

    例2:

    // 使用函数封装10+20的结果,并打印出来,调用3次
    
    function add(){
        console.log(10+20);
    }
    
    add();
    add();
    add();

    例3:

    // 计算1-100的和,并打印结果,调用3次
    function getsum() {
        for(i=1,sum=0,i<=100,i++){
            sum+=i
        }
        console.log(sum)
    }
    getsum();
    getsum();
    getsum();

    创建带有参数的函数

    // 语法
    function 函数名(参数){
        函数体
    }

    例1:

    // 任意两个数之和
    function add(num1,num2){         // 形参
        console.log(num1+num2);
    }
    add(1,2); // 实参

    例2:

    // 创建函数getSum ,传递1个函数,计算1-任意数字之间的和
    function getSum(num1){
        for(var i=1,sum=0;i<=num1;i++){
            sum+=i;
        }
        console.log(sum);
    }
    getsum(50);

    例3:

    // 创建函数getRun,传递2个参数,打印任意两个年份之间的所有闰年个数
    
    function getRun(num1,num2){
        for(var i=num1,count=0;i<=num2;i++){
            if(i%4==0 && i%100!=0 || i%400==0){
                    count++;
            }
        }
        console.log(count);
    }
    
    getRun(2000,2010);

    例4:

    // 出现一个形参,就相当于声明了一个变量
    function add(num1,num2){
        console.log(num1);
        console.log(num2);
    }
    add(1,2)

    创建带有返回值的函数

    例1

    function play(){
        console.log('吃火锅');
        console.log('吃海鲜');
        console.log('看表演');
        // 函数执行完后的结果
        return '火锅底料';
    }
    
    // 函数的返回结果
    var res = play();
    console.log(res);

    例2:

    function add(num1,num2,num3){return num1+num2+num3;
    }
    
    var sum = add(1,2,3);
    console.log(sum);

    例3:

    // 传递两个参数,返回最大值
    
    function getMax(num1,num2){
        if(num1>num2){
            return num1;
        }else{
            return num2;
        }
    }
    
    var res=getMax(2,5);
    console.log(res)

    例4:(三目运算符也可以实现)

    // 传递3个参数,返回最大值
    function getMax(num1,num2,num3){
        if(num1>num2){
            var max=num1;
        }else{
            var max=num2;
        }
        // max和第三个数比较
        if(max>num3){
            return max;
        }else{
            return num3;
        }
    }
    var res = getMax(12,34,23);
    console.log(res);

    例5:

    // 创建函数isRun,传递1个参数(年份),是闰年返回true,不是闰年返回false
    
    function isRun(year){
    if(year%4==0 && year%100!=0 || year%400==0){
    return true;
    }else{
    return false;
    }
    }
    
    // console.log(res);
    if(res=true){
    console.log(365)
    }else{
    console.log(365)
    }
    
    var res = isRun(2000);

     例6:

     // 创建getStatus,传递1个参数(订单状态码),返回对应的中文;
     // 1-待付款    2-待发货    3-运输中   4-已签收    5-已取消    其它状态码-无法查询
     function getStatus(code){
         switch(code){
             case 1:
                 return '待付款';  // 函数内部使用return;
                 break;          // 此处break可以省略;
             case 2:
                 return '待发货';
                 break;
             case 3:
                 return '运输中';
                 break;
             case 4:
                 return '已签收';
                 break;
             case 5:
                 return '已取消';
                 break;
             default:
                 return '无法查询';
         }
     }
     var res = getStatus(2);
     console.log(res);

    函数_变量的作用域

    作用域分为两种:全局作用域和局部作用域

    在函数中使用var申明的变量是局部变量,未使用关键字申明的变量是全局变量;

    JS程序执行前,使用var关键字申明的变量会提升到所在作用域最前面,但复制还是在原来的位置

     console.log(a);
     var a=1;   // var a;会提升到前边,而a=1还是在当前位置;

    例1:

    递归调用【自己调用自己】

           省略

    斐波那契数列

    1   1   2    3   5    8    13     21   ...

    // 斐波那契数列
    
    function fib(n){
        // 跳出条件:n为1或者2的时候,返回1
        if(n==1 || n==2){
            return 1;
        }
        return fib(n-1)+fib(n-2);
    }
    var res=fib(20);
    console.log(res);

    匿名函数

    // 匿名函数(函数表达式)
    // 把创建的函数的地址保存到fn中
    var fn=function(n){
        console.log(n);
    };
    // fn成为了匿名函数的名称
    fn(2);

    例1:

    // 使用函数表达式计算1-100的和
    var getsum=function(n){
        for(var i=1,sum=0;i<=n,i++){
            sum+=i;
        }
        return sum;
    }
    var res=getsum(100);
    console.log(res);

    回调函数

    // 如果实参传递的是一个匿名函数,那么形参就是成为了一个函数
    function fn(num1){
    
    }
    fn(1);
    fn(function(){});

    例1:

    // 创建函数add,传递2个参数,2个参数都是以匿名函数的形式传递,在匿名函数中分别返回两个数字,
    // 最后在add中计算两个数字相加
    
    function add(num1,num2){
        //调用函数
        return num1()+num2()
    }
    var res=add(function(){
        return 2;
    },function(){
        return 3;
    });
    console.log(res);

    全局函数

    • // 对一个url进行编码

        encodeURL

    • // 对一个已经编码url进行解码

        decode

    • // 将数据转为整形

       psrseInt 

    • // 将数据转为浮点型

        parseFloat

    • // 检测一个数据是否为NaN(是——true    否——false)

        isNaN

    • // 检测一个数据是否为有限值

        isFinute  

     例1:

    // 使用弹出提示框输入一组运算,使用eval执行这组运算
    var str=prompt('please input');
    console.log(eval(str));

    总结:

    匿名函数:

    function fn(){ }       // 函数声明

    var fn=function(){  }      // 函数表达式

    创建函数

    匿名函数自调用

    (function(a){    })(1);

    回调函数

     function add(num){ num(); }

     add(function(){var a=1;return a;});

  • 相关阅读:
    Python存储系统(Memcached)
    Python消息队列(RabbitMQ)
    Python的数据库操作(pymysql)
    Python档案袋(列表、元组、字典、集合 )
    Python档案袋(函数与函数装饰器 )
    EOS基础全家桶(五)钱包管理
    EOS基础全家桶(四)启动节点
    EOS基础全家桶(三)资料汇总
    EOS基础全家桶(二)安装
    EOS基础全家桶(一)开篇
  • 原文地址:https://www.cnblogs.com/hd-test/p/11731772.html
Copyright © 2011-2022 走看看