当函数执行完的时候,并不是所有时候都要把结果打印,我们期望函数给我一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西,也就是返回值。函数通过return返回一个返回值。
每一个函数都会有一个返回值,这个返回值可以通过关键字“return”进行设置
//声明一个带返回值的函数
function 函数名(形参1, 形参2, 形参3...) {
//函数体
return 返回值;
}
//可以通过变量来接收这个返回值
var 变量 = 函数名(实参1, 实参2, 实参3...)
使用情况例一:
1.return之后不会再执行后面的代码了,直接结束,相当于break;在函数中,一旦执行完成“return”语句,那么整个函数就结束了,后续语句将不再执。
<script type="text/javascript">
function fn(a,b) {
console.log(a);//输出1
return a + b;//返回结果用变量接收
console.log(b);//不输出 因为return之后不会再执行后面的代码了
}
var result = fn(1,1);
console.log(result);//输出结果2
</script>
2.return后面是什么就返回什么
<script type="text/javascript">
function fn() {
return function() {
console.log('return后面是什么就返回什么');
};
}
var result = fn();
console.log(result)
</script>
3.return不写或者return写了但是并没有返回的东西
这时候return会返回undefined
1)没有return语句
<script type="text/javascript">
function fn(a,b){
var c = a + b;
console.log(c);//输出2
}
var result = fn(1,1);
console.log(result);//输出undefined
</script>
2)有return但是不return任何东西的结果
<script type="text/javascript">
function fn(a,b){
var c = a + b;
console.log(c);、//输出2
return;
}
var result = fn(1,1);
console.log(result);//输出undefined
</script>
3)有return的结果
function fn(a,b){
var c = a + b;
console.log(c);//输出2
return c;
}
var result = fn(1,1);
console.log(result);//输出2
使用情况例二:
1.“return”之后的值只能有一个,如果尝试返回多个值,那得到的结果始终是最后一个值。
<script type="text/javascript">
function fn(a,b){
return a,b
}
var a = fn(5,6);
console.log(a);
</script>
2.如果真的需要函数返回多个值,那就只有将值组合成一个对象或数组进行返回
<script type="text/javascript">
function fn(a,b){
return {name: a ,value: b}
}
var a = fn(5,6);
console.log(a);
</script>
<script type="text/javascript">
function fn(a,b){
return [a,b]
}
var a = fn(5,6);
console.log(a);
</script>
1.break、continue、return的区别
2.break:结束当前的循环(比如for、while)
3.continue:跳出本次循环,继续执行下次循环
4.return:不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前的函数体内的
使用情况例三:
1.在javascript中,可以用return终止函数的执行,并返回一个指定的值。其实,如果我们没有使用return,js的函数也是有返回值的,它默认的返回值就是undefined。另外,return的使用只是终止当前的函数,并不会对它外层的函数有所影响,比如函数a里面嵌套了函数b,那么在函数b里面使用了return并不会终止函数a的执行,同样的,return返回的值也不能返回到外层函数,如下:
function a(x){
if (x>0) {
return x;
}else{
x=x+1;
return a(x);
}
}
若是没有第二个return,则当传入的x不大于0时,就会返回undefined。