簡體   English   中英

為什么“console.log”在“return”命令后不起作用?

[英]Why "console.log" doesn't work after a "return" command?

我想知道為什么在 return 命令之后的console.log命令不起作用。 這是一個例子。 console.log(square(50))不應該執行函數體中的所有命令嗎?

使用此代碼,console.log 命令僅顯示數字 2500,但不顯示短語“這是它的平方”。 為什么?

 function square(x) { return x * x; console.log(`This is the square of it`); } console.log(square(50));

因為return是一個語句,並且在 return 之后編寫的任何代碼都不會執行,這就是為什么在 return 語句之后編寫的console.log不會執行的原因。 上面的輸出只會是2500

console.logThis is the square of it ); 此行將被忽略

由於return使函數立即返回,因此后面編寫的任何代碼都將被完全忽略。

console.log無法繞過此行為。

這是基本的編程知識,這里的解釋將為目標受眾保持“簡單”。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

return 語句結束函數執行並指定要返回給函數調用者的值。

返回的目的實際上是允許函數提供某種形式的信息。 當到達返回值時,代碼執行通常會回到調用函數的位置並計算返回值,然后從那里繼續執行:

function sum(a, b) {
    return a + b;
}

const result = sub(3, 2); // Returns 5
console.log(result); // Outputs 5.
console.log(sum(2, 2)); // Outputs 4

此外:

function calculate(a, b, operation) {
   const addOperations = ["add", "sum", "plus"];
   const subtractOperations = ["take", "subtract", "minus"];
   const multiplyOperations = ["times", "multiply"];
   const divideOperations = ["divide", "divise"];
   if (addOperations.includes(operation.toLowerCase())) return a + b;
   if (subtractOperations.includes(operation.toLowerCase())) return a - b;
   if (multiplyOperations.includes(operation.toLowerCase())) return a * b;
   if (divideOperations.includes(operation.toLowerCase())) return a / b; 
}

console.log(calculate(3, 3, "multiply")); // Outputs 9
console.log(calculate(4, 4, "divide")); // Outputs 1
console.log(1, 1, ""); // Outputs undefined

如果沒有返回,則評估為未定義。

因為return結束函數,控制台日志被忽略。

您可以只使用 1 並在 之后調用該函數,而不是使用 2 console.log ,如下所示:

function square(x) {
let sq = x*x;
console.log(`This is the square of it: ${sq}`);
}
square(50);

return 語句在該語句處結束函數的執行,並且不會像您的代碼那樣執行其他行。

所以試試這個:

 function square(x) { return x * x; } console.log('This is the square of it: ', square(50));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM