return
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
return
表達式會終止函式執行,並指明函式呼叫器(function caller)要回傳的數值。
嘗試一下
語法
return [[expression]];
expression
-
要被回傳的表達式。如果省略了表達式,函式就會回傳
undefined
。
敘述
如果在 function body 內宣告 return
的話,函式執行就會終止。如果指定數值的話,函式呼叫器就會回傳給定的數值。例如說,以下函式會回傳 x
參數的次方數。
function square(x) {
return x * x;
}
var demo = square(3);
// demo will equal 9
如果省略了表達式,函式就會回傳 undefined
。
以下所有的 return 宣告都會終止函式執行:
return;
return true;
return false;
return x;
return x + y / 3;
自動插入分號
return
宣告會受自動插入分號(automatic semicolon insertion,ASI)影響。No line terminator is allowed between the return
keyword and the expression.
return;
a + b;
會因為 ASI 而變成:
return;
a + b;
主控台會警告「unreachable code after return statement」(在 return 宣告後面有無法抵達的程式碼)。
备注: 從 Gecko 40 開始,如果主控台發現在 return 宣告後面有無法抵達的程式碼,就會顯示警告。
要避免 ASI 問題,可以添加括號:
return a + b;
示例
終止函式
在到達呼叫 return
的地方後,函式會立即停止。
function counter() {
for (var count = 1; ; count++) {
// 無限迴圈
console.log(count + "A"); // 直到 5
if (count === 5) {
return;
}
console.log(count + "B"); // 直到 4
}
console.log(count + "C"); // 永不顯示
}
counter();
// 輸出:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A
函式回傳
請參見閉包。
function magic(x) {
return function calc(x) {
return x * 42;
};
}
var answer = magic();
answer(1337); // 56154
規範
Specification |
---|
ECMAScript Language Specification # sec-return-statement |
瀏覽器相容性
BCD tables only load in the browser