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='中国');