JavaScript return 语句在函数定义中的作用有两个:
图 1:return 语句中止函数执行结果
图 2:调用 return 语句返回的匿名函数
- 一是返回函数值;
- 二是中止函数的执行。
return 语句可以返回包括基本数据类型、对象、函数等任意类型的值。每个函数都会返回一个值。当没有使用 return 语句,或使用了 return,但其后面没有指明返回值时,函数都将返回“undefined”值。如果需要返回“undefined”以外的值,必须使用 return,同时指明返回的值。
函数一旦执行完 return 语句,将会立即返回函数值,并中止函数的执行,此时 return 语句后的代码都不会被执行。根据 return 语句的这一特性,常常会在需要提前退出函数的执行时,利用不带返回值的 return 语句来随时中止函数的执行。
【例 1】return 语句显式返回函数值。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>return语句显式返回函数值</title> <script> function expressionCaculate(x){ if((x >= -10) && (x <= 10)){ return x * x - 1; } else { return 5 * x + 3; } } console.log(expressionCaculate(6)); console.log(expressionCaculate(12)); </script> </head> <body> </body> </html>
expressionCaculate() 的 return 后面跟着的是一个表达式,在函数执行到 return 语句时会先计算表达式的值,然后返回该值。调用函数时,会根据传给 x 的值,返回不同表达式的值。
【例 2】return 语句中止函数的执行。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>return语句中止函数执行</title> <script> function add(a,b){ if(a > b){ console.log("a大于b"); return; console.log("a+b=" + (a + b)); } console.log("a+b=" + (a + b)); } add(7,3); </script> </head> <body> </body> </html>
执行 add(7,3) 代码时,将调用 add() 方法,此时第一个参数的值大于第二个参数,在控制台中输出“a 大于 b”,然后函数返回,停止执行,从而 return 语句后面的两条日志都不会被输出。运行结果如图 1 所示。
图 1:return 语句中止函数执行结果
【例 3】return 语句返回函数。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>return语句返回函数</title> <script> function outerFunc(){ var b = 0; return function(){ //返回匿名函数 b++; console.log("内部函数中b=" + b); } } var func = outerFunc(); func(); </script> </head> <body> </body> </html>
因为 outerFunc() 函数返回一个匿名函数,所以 outerFunc 函数的调用表达式就变为了函数表达式了,从而可以使用变量 func 来调用匿名函数。运行结果如图 2 所示。
图 2:调用 return 语句返回的匿名函数
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/23977.html