js day06

day06

案例案例

        // 函数是一个复杂数据类型 typeof function  
        // 函数是一个工具  也叫方法 
        // 函数分为两种
        // 系统函数 比如 prompt()  alert()  
        // 自定义函数  当系统函数不满足我们的需求 我们可以自己定义函数
​
        //函数可以看做一个盒子 我们把相同功能的代码归纳出来放到盒子中 
​
​
        // 函数两个阶段 
​
        // 定义阶段 
        //function 函数名字(参数1,参数2,参数3) {  参数可以理解为 只在()内
            // 起作用的变量  参数可以不写  多个参数用逗号隔开
            // {}中是函数体
         //}
​
        // 调用阶段
        
        // add1(10,20); // 实际参数
        // 函数名();
        // add1()
  //两个数之间的运算
  
  //声明式定义函数 
        function trans(num1,point,num2){
            switch(point){
                case '+':
                    return num1+num2;
                case '-':
                    return num1-num2;
                case '*':
                    return num1*num2;
                case '/':
                    return num1/num2;
            }
        }
        // alert(trans(1000,'*',9000))
        // var n1 = parseInt(prompt('请输入第一个数字'))
        // var p = prompt('请输入运算符')
        // var n2 = parseInt(prompt('请输入第二个数字'))
​
        // document.write(trans(n1,p,n2))
​
​
        // 赋值式定义函数 
        // alert(trans2(500,'*',200))
        var trans2 = function(num1,point,num2){ // function trans2(){}
        switch(point){
                case '+':
                    return num1+num2;
                case '-':
                    return num1-num2;
                case '*':
                    return num1*num2;
                case '/':
                    return num1/num2;
                default:
                    return '请输入正确的运算符'
            }
        }
        // alert(trans2(100,'*',300))
​
        // var n1 = parseInt(prompt('请输入第一个数字'))
        // var p = prompt('请输入运算符')
        // var n2 = parseInt(prompt('请输入第二个数字'))
​
        // document.write(trans2(n1,p,n2))
​
        
        // 声明式创建函数  可以在定义函数之前调用 也可以在定义之后调用
        // 赋值式子创建函数怒 调用的时候只能在函数之后调用 
​
        // 函数运行的结果可以赋值给一个变量 
​
        
        var n1 = parseInt(prompt('请输入第1个数字'))
        var p = prompt('请输入运算符')
        var n2 = parseInt(prompt('请输入第2个数字'))
​
        var res = trans2(n1,p,n2)
​
        alert(res);
​

私人可以使用公家的东西

公家不能随便使用私人的东西

 // 两个数的最大公约数 
        // min max 
        // 5   9 
​
        // 9 % 5 = 4
        // max 5
        // min 4
        // 5 % 4 = 1
​
        // max 4
        // min 1
​
        // 4 % 1 = 0
        // min 
        //10 100  
​
        function gcd(a,b){
            var max = a>b?a:b; //找到最大值
            var min = a>b?b:a; // 最小值
            while(max % min != 0){ // 最大值求余最小值 如果不为0 循环继续
                // 把min 变成max 
                // 余数变成min 
                var temp = max % min;   // 获取余数
                max = min; // 把min 变成max
                min = temp;// 余数变成最小值min 
            } //这个while 结束了 max 求余 min ==0 
​
            return min;
        }
​
        function test(a,b){
            var max = a>b?a:b; //找到最大值
            var min = a>b?b:a; // 最小值
            for(var i=min;i>=1;i--){ // 最大值求余最小值 如果不为0 循环继续
                if(a %i ==0 && b % i ==0){
                    max_g = i;
                    return max_g;
                }
​
            }
            return max_g;
        }
        alert(test(10,100));
        
​
        //两个数的最小公倍数  
        // 3  4    12 
        // 5 6     30 
        //num1 * num2 = 最大公约数 * 最小公倍数
        // 最小公倍数 = num1 * num2 / 最大公约数
​
        function lcm(a,b){
           return a*b/gcd(a,b);
        }
​
​
​
        // console.log(gcd(5,6));
        // console.log(lcm(5,6));
​
​

函数返回值

//当一个工具指定的结果 需要赋值给一个变量
        // 另外一个工具需要用到这个工具执行完成后的结果 
        // 那么我们需要将结果返回
        // 如果一个函数没有return 只有document.write 或者console.log()
        // 或者alert()
        // 他们都不是把结果返回  
​
        // 如果这个工具没有return 还要把他赋值一个变量
        // 这个变量的结果就是undefined

默认参数

  
 // function intro_myself(name,age=18,country='中国'){
        //     document.write(`我叫${name},今年${age}岁,来自${country}`);
        // }
​
​
        // intro_myself('小明'); // 如果有默认值 name country 可以不传
        // intro_myself('小明',20,'列支敦士登');
        // 也可以传递新的值 这样会把默认值替换掉
​
        function intro_myself(age=18,name,country='中国'){
            document.write(`我叫${name},今年${age}岁,来自${country}`);
        }
​
        // intro_myself('小明'); // 默认按照顺序依次传递
        //我叫undefined,今年小明岁,来自中国 
        intro_myself(name='张三',age=25,country='中国');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值