在函数中可以使用 return 来设置函数的返回值,return 后面的值将会作为函数的执行结果返回,可以定义一个变量来接收函数的返回值。return 后面的值可以是任意类型,对象或函数等都可以作为返回值。
function sum (a,b,c){
var total = a+b+c;
return total; //将一个基本类型变量作为返回值
}
var result = sum(4,7,8);
console.log(result);
//输出19
代码中的 total 作为 sum 函数的执行结果返回,变量 result 接受 sum 函数的返回值,函数返回什么 result 就是什么。
function fun2(){
var obj = {
name:"tom";
age:13;
};
return obj; //将一个对象作为返回结果
}
var a = fun2(); //a此时指向obj
console.log(a);
//输出:Object{name:"Tom",age:13}
function fun3(){
function fun4(){
console.log("我是fun4");
}
return fun4; //将一个函数作为返回值
}
var result = fun3(); //返回值是函数fun4,result指向fun4这个函数对象
console.log(result); //result为fun4,输出:function fun4()
result(); //相当于执行 fun4(),输出“我是fun4”
fun3()(); //相当于执行 fun4(),输出“我是fun4”。fun3()结果是fun4,fun3()()就是fun4()
//输出:function fun4()
// “我是fun4”
// “我是fun4”
function fun3(){
function fun4(){
var a = 1;
console.log("我是fun4");
return a;
}
return fun4(); //将函数fun4的返回值作为fun3的返回值
}
var result = fun3(); //result等于函数fun4的返回值a
console.log(result); //result为1
//输出:“我是fun4”
// 1
在函数中 return 后的语句都不会执行,使用 return 可以结束整个函数。
function sum (a,b,c){
var total = a+b+c;
return total;
console.log("hello!"); //这条语句不会执行,因为return语句在前面,函数已经返回,后面的不再执行
}
var result = sum(4,7,8);
console.log(result);
//输出:19
上面的例子中,如果写了 return 语句,但是后面没有跟值,返回 undefined 。
function sum(a,b,c){
var d = a+b+c;
return ;
console.log("hello"); //该语句不会执行
}
var result = sum(4,7,8);
console.log(result); //输出undefined
//输出:undefined
如果不写 return 语句,也是返回 undefined 。
function sum(a,b,c){
var d = a+b+c;
console.log("hello"); //该语句会执行
}
var result = sum(4,7,8);
console.log(result);
//输出:“hello”
// undefined
var result = alert("hello");
console.log(result);
//输出undefined,alert方法没有返回值