咳咳咳,今天整理了,函数的返回值,重中之重,同鞋们一定要好好学习,把下面的案例都搞懂了,你就明白返回值是什么东东,以后要这么用。
返回值
什么是函数返回值:函数执行后的结果外部需要使用的时候,我们不能直接给予,是需要通过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))