Javascript——函数

初步认识函数

    <script type="text/javascript">
        console.log("你好");
        sayHello();         //调用函数

        //定义函数:
        function sayHello(){
            console.log("欢迎");
            consolo.log("welcome");
        }
    </script>

函数是一种封装,即将一些语句封装到函数里面,通过调用的形式执行这些语句。
语法:

function函数名字(){

}

function是一个关键字,和var、typeof一样都是关键字,后面要加空格。函数名字的命名规定和变量的命名规定一样,只能是字母、数字、下划线、美元符号,不能以数字开头。后面要有一对空的小括号,里面是放参数用。大括号里面是这个函数的语句。

常见错误:
1. 不能小括号包裹大括号

    function sayHello({

    })
  1. 不能忘记小括号对:
    function sayHello{

    }

函数的调用
调用一个函数就是在这个函数的名字后面加小括号对儿。
语法:

函数名字();

定义函数,可以在调用的后面:这是JS的语法特性,函数声明头的提升。

    <script type="text/javascript">
        console.log("你好");
        sayHello();         //调用函数

        //定义函数:
        function sayHello(){
            console.log("欢迎");
            console.log("welcome");
        }
    </script>

函数的功能、好处:
1)将会被大量重复的语句写在函数里面,这样以后需要这些语句的时候,直接调用函数,不用重写语句。
2)简化编程,让编程变得模块化。

函数的参数

    <script type="text/javascript">
        sayHello("你好啊""吃了吗");  //函数的调用(实际参数,真实的数值、字符串)

        //定义函数(形式参数,表示接收一个值)
        function sayHello(a,b){
            console.log(a);
            console.log(b);
        }
    </script>

实际参数和形式参数的个数要相同。

    <script type="text/javascript">
        qiuhe(3,4);
        qiuhe("3",4);
        qiuhe("我爱你","中国");

        function qiuhe(a,b){
            console.log(a+b);
        }
    </script>

分别输出的是7、34、我爱你中国。

函数的返回值

        console.log(qiuhe(3,4));

        function qiuhe(a,b){
            return a+b;
        }

return表示此时这个“函数调用的表达式”(红色部分)值就是这个a+b。
函数里面可以没有return,如果有,只能有一个,不能有多个return;
函数里面return后面不允许书写程序了,写在return后面的程序无效。

用函数的思想找出较大的数字:

    var a = zhaodashu(3,zhaodashu(4,5));
    console.log(a);

    function zhaodashu(a,b){
        if(a >= b){
            return a;
        }else{
            return b;
        }
    }

用函数的思想判断水仙花数:

    <script type="text/javascript">
        for(var i = 100 ; i <= 999;i++){
            if(panduanshibushishuixianhua(i) == true){
                console.log(i);
            }
        }

        //百位函数,这个函数的功能是,接收一个参数,返回这个参数的百位数
        function baiwei(num){
            return parseInt(num / 100);
        }

        //十位函数
        function shiwei(num){
            return parseInt(num % 100 / 10);
        }

        //个位函数
        function gewei(num){
            return num % 10;
        }

        //判断数字是否是水仙花数:
        function panduanshibushishuixianhua(num){
            var a = baiwei(num);
            var b = shiwei(num);
            var c = gewei(num);
            if(num == Math.pow(a,3) + Math.pow(b,3) + Math.pow(c,3)){
                return true;
            }else{
                return false;
            }
        }
    </script>

不用函数的思想输出1~10000的所有质数:

        for(var i = 2 ; i <= 10000;i++){
            var sum = 0;
            for(var j = 1 ; j <= i ; j++){
                if(i % j == 0){
                    sum ++;
                }
            }
            if(sum == 2){
                console.log(i);
            }
        }

用函数的思想输出1~10000的所有质数:

    <script type="text/javascript">
        for(var i = 2 ; i <= 10000 ; i++){
            if(panduanzhishu(i)){
                console.log(i);
            }
        }

        //因数个数函数。接收一个数字,返回这个数字的约数个数。
        //比如,传入48,返回10。
        //传入21,返回4
        function yinshugeshu(num){
            var sum = 0;        //累加器
            //从1开始到这个数字,一个个被这个数字除
            //如果能够除尽,那么累加器加1
            for(var i = 1 ; i <= num ; i++){
                if(num % i == 0){
                    sum ++;
                }
            }
            //最后返回这个累加器的值
            return sum;
        }

        //判断是否是质数。接收一个数字,返回true、false。
        //比如,传入21,返回false
        //比如,传入13,返回true
        function panduanzhishu(num){
            if(yinshugeshu(num) == 2){
                return true;
            }else{
                return false;
            }
        }
    </script>
    //请将偶数100,拆写成两个质数的和。列出所有情况
    //比如3、97,比如11、89
    //算法思路是,从2开始试,如果2是质数,且100-2也是质数,那么输出
    for(var i = 1 ; i <= 100 ; i++){
        if(panduanzhishu(i) && panduanzhishu(100 - i)){
            console.log("数字100能够表示为" + i + "与" + (100 - i) + "的和");
        }
    }

    //因数个数函数。接收一个数字,返回这个数字的约数个数。
    //比如,传入48,返回10。传入21,返回4
    function yinshugeshu(num){
        var sum = 0;        //累加器
        //从1开始到这个数字,一个个被这个数字除
        //如果能够除尽,那么累加器加1
        for(var i = 1 ; i <= num ; i++){
            if(num % i == 0){
                sum ++;
            }
        }
        //最后返回这个累加器的值
        return sum;
    }

    //判断是否是质数。接收一个数字,返回true、false。
    //比如,传入21,返回false
    //比如,传入13,返回true
    function panduanzhishu(num){
        if(yinshugeshu(num) == 2){
            return true;
        }else{
            return false;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值