首頁 >web前端 >js教程 >javascript基礎教學之函數傳回值return語法實例詳解

javascript基礎教學之函數傳回值return語法實例詳解

伊谢尔伦
伊谢尔伦原創
2017-07-25 10:10:421854瀏覽

函數傳回值

  函數中的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn