函数返回一个或多个值
本帖最后由 pidtfork 于 2020-10-28 18:07 编辑函数返回一个或多个值
返回值
返回值意如其名,是指函数执行完毕后返回的值。函数中使用关键字return返回值,一个函数执行时遇到return关键字后,相当于结束了本函数的运行,返回return 后面跟着的值,如果return后面还有代码将不在运行。
return 后面可以跟任意类型的值,所以函数的返回值可以是任意类型的,如果函数没有return或者return没有任何值,则函数的返回值为undefined;
返回一个值
求两个数的和函数,add()的写法和sum()是一样的没有区别
function sum(num1,num2) {
varvalue = num1 + num2;
returnvalue;//返回一个值
}
sum(10,50); //60
function add(num1,num2){
returnnum1 + num2;//返回一个值,表达式会在返回前解析运算
//等价sum方法
}
返回2个或者多个值
可以通过返回一个对象或者数组的方式,来返回多个值,使用的较多的是用对象的方式返回数据。下面例子是一个根据传入圆的半径,返回圆的周长和圆的面积。
function circle(r){
vars,c;
s = Math.PI*r*r;
c = 2*Math.PI*r;
return{
s:s,
c:c
}
}
varobj = circle(5); //{ s: 78.53981633974483, c:31.41592653589793 }
obj.s //78.53981633974483
obj.c//31.41592653589793
function circle_arr(r){
vars,c;
s = Math.PI*r*r;
c = 2*Math.PI*r;
return;
}
circle_arr(5); //
返回函数或对象实例
返回值可以是任意类型,当然也可以返回函数。
你可能看到过类似这样的函数调用 a(1)(2)(3)("hello");其实就是然后值返回了一个函数类型而已。
下面例子就是实现,a函数返回了函数b,b函数返回了函数c,c函数返回的是一个匿名函数。
function a(params){
console.log("a = " +params);
returnb;
}
function b(params){
console.log("b = "+ params);
returnc;
}
function c(params){
console.log("c = " +params);
return function(data){
console.log("data = " +data);
}
}
a(1)(2)(3)("hello"); //调用
//依次打印
// a = 1
// b = 2
// c = 3
// data = hello
还有这种 Math.random().toString(36).slice(-8); 调用
这里 Math 是一个对象,里面有一个 random 方法,random 方法返回的是一个Number对象,Number对象有一个toString()方法,toString()方法返回的是一个字符串对象,所以字符串对象有一个slice()方法。这也就是这个链式调用执行的原理。
function str10(params){
return "0123456789"+params;
}
str10("ABCDEF").slice(-10); //6789ABCDEF
str10 方法返回了一个字符串对象,所有的字符串对象都有slice方法,所以这个链式调用能返回长度为10的字符串
页:
[1]