学习JS的第五天之函数

学习JS的第五天之函数

其他学习笔记:点击前往



前言

函数的概念,定义,调用,分类和变量的介绍。

一、函数

1、函数的概念

    就是定义一次,就可以多次调用的代码。

2、函数的作用

    提高代码的复用率:

    以功能模块分离代码,提高可读性,建立模块化编程。

3、函数的定义

    函数声明:
        function 函数名(参数){
            函数体 -- 要执行的代码块。
        }
    
    函数表达式:
        var 变量名 = function(){
            函数体
        }

4、函数的调用

    直接调用。
        函数名(参数);

    在函数内调用其他函数。

    函数可以被自己调用:
        递归
    
    对象的方法
        对象 . 方法名();

5、函数的参数

    形参:
        是在定义函数的时候使用的参数,可以理解为函数中需要用到的未知数(变量)。

    实参:
        调用函数的时候,给函数的形参传入的具体的值。

    function 函数名(形参){
        //函数名 
    }
    //调用
    函数名(实参);

    参数不是必须的。

6、函数的返回值

    希望调用函数后得到一个计算结果,

    function 函数名() {
        //函数体
        return 值;
    }

    调用函数后,得到一个结果,所以可以将函数调用赋值给一个变量;
    return 会直接结束函数的执行,后续代码不再执行。

7、函数的分类

    根据是否有参数:
        有参函数:有参数的函数

        无参函数:没有参数的函数。

        * 根据是否有 return
          返回值函数

        根据函数名字

        具名函数:函数有名字

        匿名函数:函数没有名字
            对象方法
            
            var 变量名 = function(){}

8、函数的arguments对象

        该对象默认存在于函数内部。并且结构和数组结构类似。

        调用函数的时候,传递的实参会保存在 arguments中。

        当不确定形参数量的时候,就直接使用arguments替代形参。

        由于auguments 类似数组,所以可以通过下标访问实参,可以使用for循环,但是不能使用数组方法。

二、变量

1、作用域

        变量可以在哪个范围内可以使用。

2、变量的分类

        全局变量:
            在函数外通过var,let,const 声明得到的变量就是全局变量。
            在函数内部没有通过关键字创建得变量。

            全局变量可以在任意范围内访问和修改。

        局部变量:
            在函数中通过关键字 var,let,const 声明的变量就是局部变量。
            局部变量只能在当前函数内部使用,外部无法访问。

3、变量的提升和函数的提升

        通过 var 关键字声明的变量,都会在代码执行之前提升到当前作用域顶部。
        变量提升只会将变量声明部分提升到当前作用域顶部,但是赋值操作不提升。

        通过 function 声明的函数也会在代码执行之前提升到当前作用域顶部。 
        函数提升的优先级比变量高。

三、简单练习

1、编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数

  // 比如: 计算0-3之间能组成的奇数个是01、21、03、13、23、31

        function two(n, m) {
            for (var i = n; i <= m; i++) {
                for (var j = n; j <= m; j++) {
                    if (i % 2 == 1) {
                        document.write(String(j) + String(i) + ',');
                    }
                }
            }
        }
        two(0, 3);

2、编写生成4位数字验证码的函数,并生成10次,同时将结果打印出来

function getCode(n){
    n= n || 4;
    var code = '';
    for (var i = 0;i < n; i++){
        code += Math.floor(Math.random() * 10);
    }
    document.write(code);
}
getCode(10);

3、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,请编写一个函数,传入原文,输出密文。

// 原数据 = 1479
// 拆成4位:1  4  7  9
// 分别+ 5:6 9 12 14
// 除10的余数:6 9 2 4
// 换位置(反转):4 2 9 6
// 千位 = parseInt(1479 / 1000)
// 百位 = parseInt((1479 - 千位 * 1000) / 100)
// 十位 = parseInt((1479 - 千位 * 1000 - 百位 * 100) / 10)
// 个位 = 1479 % 10


     function moCode (num) {
         var arr = [];
         for (var i = 0;i < 4; i++) {
             arr[i] = num % 10;
             arr[i] += 5;
             arr[i] %= 10;
             num = parseInt(num / 10);
         }
         return arr.join('');
     }
     document.write(moCode(1479))

总结

要熟练使用函数,尤其是把函数封装。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值