函數傳回值
函數中的return語句用來傳回函數呼叫後的回傳值
return expression;
return語句只能出現在函數體內,如果不是會報語法錯誤
return 1;//SyntaxError: Illegal return statement
如果沒有return語句,則函數呼叫僅依序執行函數體內的每一語句直到函數結束,最後返回呼叫程式。在這種情況下,呼叫表達式的結果是undefined
var test = function fn(){} console.log(test);//undefined
當執行到return語句時,函數終止執行,並傳回expression的值給呼叫程式
var test = function fn(){ return 2; }; console.log(test());//2
[注意]並不是函數中return語句後的所有語句都不執行,finally語句是例外,return語句不會阻止finally子句的執行
function testFinnally(){ try{ return 2; }catch(error){ return 1; }finally{ return 0; } } testFinnally();//0
[注意]由於javascript可以自動插入分號,因此在return關鍵字和它後面的表達式之間不能有換行
var test = function fn(){ return 2; }; console.log(test());//undefined
一個函數中可以有多個return語句
function diff(iNum1, iNum2) { if (iNum1 > iNum2) { return iNum1 - iNum2; } else { return iNum2 - iNum1; } }
return語句可以單獨使用而不必帶有expression,這樣的話也會向呼叫程式傳回undefined
var test = function fn(){ return; }; console.log(test());//undefined
return語句經常作為函數內的最後一條語句出現,這是因為return語句可用於使函數提前傳回。當return被執行時,函數立即返回而不再執行餘下的語句
//并没有弹出1 var test = function fn(){ return; alert(1); }; console.log(test());//undefined
如果函數調用時在前面加上了new前綴,且返回值不是一個對象,則返回this(該新對象)
function fn(){ this.a = 2; return 1; } var test = new fn(); console.log(test);//{a:2} console.log(test.constructor);//fn(){this.a = 2;return 1;}
如果傳回值是一個對象,則傳回該對象
function fn(){ this.a = 2; return {a:1}; } var test = new fn(); console.log(test);//{a:1} console.log(test.constructor);//Object() { [native code] }
以上是javascript基礎教學之函數傳回值return語法實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!