[英]Why does this return statement in JavaScript return nothing?
在您將此問題標記為重復之前,請理解我是 JS 新手並且總是害怕問一個關於 stackoverflow 的問題。
我不明白為什么調用這個函數什么都不返回,除非我將函數調用包含在 console.log 中。
如果我將函數調用包含在 console.log 中,我會得到預期的輸出“這個數組中有 3 個元素”,但是如果沒有 console.log,我什么也得不到。
var counter = function (arr) {
return 'There are ' + arr.length + ' elements in this array';
};
counter(["shaun", "sara", "jessica"])
我想知道的是如何在不使用console,.log的情況下獲得這個函數的輸出,以及為什么沒有console.log它不輸出任何東西的原因。
console.log()
是一個用於將信息打印到控制台的函數。 另一方面,return
是將某些值傳遞回調用位置的調用。通過 - CodeCademy 論壇
return
終止一個函數並可能向該函數的調用者返回一個值(而console.log()
不會影響您的代碼流。
檢查並運行以下代碼片段以獲取有關兩者如何工作的實際示例:
var x = document.getElementById("first"); var y = document.getElementById("last"); var z = document.getElementById("output"); function printName(){ z.innerText = fullName(); } function fullName(){ console.log(x.value + " " + y.value); // this wont push the concatenated name to printName() return x.value + " " + y.value; // this will push the concatenated name to printName() alert("yu do dis?"); // this won't run anymore since the return statement above prevents the function from invoking anything else } document.getElementById("btn").addEventListener("click", printName)
<input type="text" id ="first" /> <input type="text" id ="last" /> <button id="btn">Click Me</button> <br/> <div id="full">Hello <span id="output"></span>!!</div>
如果上面的return
語句被刪除, console.log()
本身不會向printName()
返回任何內容,除了在控制台中顯示連接的名稱。
var counter = function (arr) {
return 'There are ' + arr.length + ' elements in this array';
};
let functionResult = counter(["shaun", "sara", "jessica"]);
您需要將結果返回給一個變量。 然后你可以隨意使用它。
所以,你實際上是在返回一些東西,如果你想在另一個函數或其他地方使用這個函數的返回值,你就沒有辦法在沒有 console.log() 的情況下查看它,你可以將它分配給一個變量,如
const myCounter = counter(["shaun", "sara", "jessica"])
console.log(myCounter)
return 所做的一切都是使函數的結果可用於其他地方。 如果您不通過 console.log 或其他一些方法(將其放入 HTML 元素或其他內容)顯示它,那么您將永遠不會在任何地方“看到”它,並且看起來該函數沒有執行任何操作,即使是。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.