day05 - JavaScript函数基础知识

本文介绍了JavaScript中的函数概念,包括封装性、复用性,系统函数与自定义函数的区别。详细阐述了函数的语法、参数说明、调用方式及函数的封装过程。通过实例展示了如何利用函数求和、打印三角形、输出质数、生成随机数以及判断质数等。此外,还讨论了函数的形参与实参、返回值以及在实际应用中的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数

function 函数
函数:把同一个功能的代码放在一起
作用:封装性 + 复用性

函数分类:
1.系统函数()
2.自定义函数

函数:就是一个工具,是可以重复使用的。函数有的有参数,有的没有。如Math.random()、alert(666)

函数的语法:
function 函数名(参数){
功能是怎么实现的
}
注意:函数名(参数) —函数必须调用
函数的说明书包括:
1.函数的功能:求两个数的和
2.参数说明:(声明参数的类型)
第一个参数是一个数字
第二个参数也是一个数字

利用函数求和

        //说明书
        //函数的功能:求两个数的和
        //函数的参数:
        //第一个参数是一个数字
        //第二个数字也是一个数字

        //定义一个函数 function 函数名(参数)
        function sum(m,n){
            //打印出m,n的和
            document.write(m+n);
        }
        //调用函数
        sum(2,3);

函数的封装

函数封装的步骤:
1.普通的实现这个功能
2.装个壳子 function
3.取个名字
4.考虑是否需要参数 — 参数可有可无
5.一定要调用函数
6.附上说明书

训练:利用函数的封装打印三角形

        function star(m){
            //外层循环 打印*行数
            for(var i = 1 ; i <= m ; i++){
                //内层循环 打印一行*个数
                for(var j = 1 ; j <= i ; j++){
                    //打印*
                    document.write('*')
                }
                //换行
                document.write('<br>')
            }
        }

        //调用函数 打印三角形
        star(5) ;

函数的形参和实参:
函数声明的地方:形参
函数调用的地方:实参

        //函数的功能:打印乘法表
        //函数的参数:
        //第一个参数是数字 number ----打印几乘几乘法表

        // m 和 n 叫做形式参数   ---形参
        function multi_99(m , n) {
            for(var i = 1 ; i <= m ; i++){
                for(var j = 1 ; j <= i ; j++){
                    if(n === '*'){
                        document.write(j + '*' + i + '=' + i * j + '&nbsp;&nbsp;&nbsp;');
                    }
                    else if(n === '+'){
                        document.write(j + '+' + i + '=' + (i + j) + '&nbsp;&nbsp;&nbsp;' );
                    }
                }
                document.write('<br>');
            }
        }

        //5 6 * + 叫做实际参数   ----实参
        multi_99(5 , '*');

        multi_99(6 , '+ ');

训练:利用函数的封装输出1-100以内的质数,并换行

        //函数的功能:输出100以内的质数,并换行
        //第一个参数是数字  ---number  输入0-几以内的质数
        //第二个参数是数字  ---number  输入几个换一次行
        function isZhi(n , m){

            //先遍历1-100的数
            var count = 0 ;
            for(var i = 2 ; i <= n ; i++){
                //找到满足条件的质数,假设是质数
                var flag = true;
                //找到不是的证据  ---  只要能被任何一个数整除就不是
                for(var j = 2 ; j < i ; j++){
                    //只要能被其他数整除
                    if(i % j === 0){
                        //说明不是质数,也就是假设被推翻
                        flag = false ;
                        //结果已经出来,就不需要继续找证据
                        break ;
                    }
                }

                //最终根据flag的值来判断是不是质数
                //flag ? document.write(i) : '';
                if(flag){
                    document.write(i + '&nbsp;&nbsp;');
                    count++;
                    //每 m 个换行
                    if(count === m){
                        document.write('<br>');
                        count = 0 ;
                    }
                }
            }
        }

        isZhi(100 , 5);

函数的返回值

函数的返回值 — 函数最终执行的结果
函数的返回值也是可有可无的

在函数内部定义变量时,在外面无法使用。会报错,因为访问不到函数的内部变量。

        function sum(a , b){
            //只是在控制台打印了这个结果
            // console.log(a+b);
            var result = a + b ;  
            //result 是在函数内部定义的,在外面无法使用
            // console.log(result);

            return result 
            
        }

        var n = sum(2 , 3) ;
        document.write(n);
        // document.write(result); //报错,因为访问不到函数的内部变量

        var n = Math.random();
        console.log(n); //函数会得出一个结果

        var res = alert(666);
        console.log(res);  //没有结果 显示undefined

训练:封装随机数

        function rand(max , min){

            // var n = Math.round(Math.random()*(max - min) + min) ;
            // return n ;

            return Math.round(Math.random()*(max - min) + min) ;
            //此时需要在函数外打印必须要return,否则会显示undefined
        }

        var m = rand(200,100);
        document.write(m);

训练:利用函数的封装判断一个数是不是质数,并输出1-100以内的质数

在这里插入代码片        //判断一个属是不是质数
        function isZhi(x){
            var flag = true ;
            for(var i = 2 ; i < x ; i++){
                if(x % i === 0){
                    flag = false ;
                    break;
                }
            }
            // if (flag){
            //     return true ;
            // }
            //    else{
            //        return false ;
            //    }
            return flag ;
        }

        var r1 = isZhi(12) ; //false
        var r2 = isZhi(17) ; //true
        document.write(r1 , r2) ;



        //100以内所有的质数
        // for(var i = 2 ; i<= 100 ; i++){
        //     var r4 = isZhi(i);
        //     if(r4){
        //         document.write(i);
        //     }
        // }
        for(var i = 2 ; i <= 100 ; i++) {
            var r4 = isZhi(i) ;
            if(r4) {
                document.write(i)
            }
        }

训练:调用函数。1.生成指定范围内的随机数,并判断这个数是否为质数;2.随机生成两个数,调用函数求和,差,乘,除。
html代码:

<body>
    产生100-200之间的随机数是:<input type="text" id="inp1">
    <br>
    判断他是不是质数:<input type="text" id="inp2">

    <script src="../js/tools_02.js"></script>

    <script>
        //产生一个100-200的随机数,判断是不是质数

        //调用产生随机数的函数
        var n = rand(100,200)
        //判断这个产生的随机数是否为质数
        var res = isZhi(n) ;
        console.log(n , res)

        //获取对象
        var oInp1 = get('inp1');
        var oInp2 = get('inp2');

        oInp1.value = n;

        if(res){
            oInp2.value = '是一个质数'
        }
        else{
            oInp2.value = '不是一个质数'
        }

        
        //计算两个数的运算
        var n1 = rand(0 , 100) ;
        var n2 = rand(0 , 100) ;
        var res2 = jiSuanQi(n1 , n2 , '-') ;
        document.write(n1 + '-' + n2 + '=' + res2);
    </script>
</body>

js代码:

//功能:产生某个范围内的随机整数
//参数:
//    min  number  范围最小值
//    max  number  范围最大值
//返回值:
//    number
function rand(min , max){
    return Math.round(Math.random()*(max - min) + min)
}

//判断一个属是不是质数
//参数 :
//     number
//返回值:
//     boolean
function isZhi(x){
    for(var i = 2 ; i < x ; i++){
        if(x % i === 0){
            return false;
        }
    }
    return true;
}

//获取对象
function get(id){
    return document.getElementById(id)
}

//计算器
function jiSuanQi(a , b , f){
    switch(f){
        case '+' : return a + b ;
        case '-' : return a - b ;
        case '*' : return a * b ;
        case '/' : return a / b ;
    }
}

函数注意点:

alert(666) 直接调用函数,并且传了一个参数
var n = Math.random() 调用函数并使用一个变量接受这个结果
返回值return:1.函数执行的结果;2.提前结束整个循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值