咳咳咳,今天整理了,函数的返回值,重中之重,同鞋们一定要好好学习,把下面的案例都搞懂了,你就明白返回值是什么东东,以后要这么用。
返回值
什么是函数返回值:函数执行后的结果外部需要使用的时候,我们不能直接给予,是需要通过return返回。
1、执行函数完毕之后,返回的数据
2、有return的函数就有返回值,反之则没有返回undefined
3、把函数内部的值赋值给外边
var j=fn(2,3); console.log(j); function fn(a,b) { var c=a+b; // 如果我们想把函数内部的值赋值给外部,必须使用return; //如果没有return或则return没有值,函数返回undefine return c; }
4、如果没有return或则return没有值,函数返回undefined
5、函数通过运算来的值是半成品,需要二次加工
外边要哪个值,我们就返回哪个值
function fn() { var sum=0; for(var i=1; i<=100; i++){ sum+=i } //外边要用那个值,就返回那个值 return sum; } var tu=fn()+50; console.log(tu)
6、函数返回值,必须执行得到
7、函数执行完return后会立即结束,return后面的代码不会执行
function fn(){ console.log(1); console.log(2); return; //函数执行完return后会立即结束,return后面的代码不会执行 console.log(3) }; fn()
8、函数的返回值必须要执行才可以得到
9、return 可以截断循环
10、开闭原则 var bool=true;
11、两个平级函数中的变量不会相互影响(可以使用同样的形参名)
//俩个函数中的局部变量不会相互影响 function fn(dd){ console.log(1) } fn(); function fn2(dd){ console.log(2) } fn2()
12、凡是 是累加 或是 计算的变量,都放在函数体外边
案例
//求园的面积 pi*r的平方 function getArea(r){ //通俗版 var pi=3.14; var a=pi*r*r; return a; //精简版 var pi=Math.PI; var a=pi*Math.pow(r,2); return a; //最终版 return Math.PI*Math.pow(r,2) } var area1=getArea(1); console.log(area1)
//求三个数中最大值 function fn(a,b,c) { var j=a>b? a: b; return j>c? j: c; //经典版 return (a>b? a:b)>c?(a>b? a: b):c; if(a>b){ if(a>c){ return a }else{ return c } }else if(d>c){ return d }else { return c } } console.log(fn(1,3,5))
// 求阶乘 求1!+2!+3!+....+n!(函数嵌套) function getSumJC(number){ function getJC(num) { var sumJC=1; for(var i=1; i<=num; i++){ sumJC *=i } return sumJC; } console.log(getJC(5)); // 求阶乘的和 var sum = 0; for(var j=1;j<=number;j++){ sum+=getJC(j);//求阶乘 } return sum; } console.log( getSumJC(4))
// 判断一个数是不是质数 //思路:除了自身和1以外,不能被(被除数是本身)其他数整除 //注意点 // 1.必须用for循环实现 //2、判断是不是质数,所以它的返回值应该是true或者false. //3、如果num%i===0了,那么一定不是素数,只有除了1和自身以外所以的数都不能整除, // 不能被所以数整除才是质数 //拓展部分 //判断一个数是不是质数,只需要判断他的平方根,超过平方根的在判断,无意义。 //英文一个数是有俩个数相称得到的,一个变大,另外一个必然变小, // 那么判断到这个数的平方根就已经的极限了,不必超过平方根 function fn(num) { var bool=true; //开闭原则 for(var i=2; i<num/2; i++){ //拓展2:for(var i=2; i<num/2; i++){ //拓展3:for(var i=2; i<Math.sqrt(num); i++){ if(num%i===0){ bool=false; } } return bool } console.log(fn(7))