簡體   English   中英

return和console.log()有什么區別

[英]What is the difference between return and console.log()

當我在函數中使用console.log()與使用return語句時,得到不同的輸出。

當我用return語句運行該函數時,我得到一個單詞輸出,它是以下之一:'fizz''buzz'或'fizzbuzz',但是當我使用console.log運行該函數時,輸出計數到極限並在遇到3、5或兩者的倍數時說“嘶嘶聲”,“嗡嗡聲”或“嘶嘶聲” /為什么會這樣?

input = fizzBuzz(100)
console.log(input)

function fizzBuzz(limit){
    for (let i = 0; i <= limit; ++i)
    if (i % 3 === 0 && i % 5 === 0) 
    console.log('fizzbuzz')
    else if (i % 3 === 0)
    console.log('fizz')
    else if (i % 5 === 0)
    console.log('buzz')
    else console.log(i)
}


input = fizzBuzz(100)
console.log(input)

function fizzBuzz(limit){
    for (let i = 0; i <= limit; ++i) {
        if (i % 3 === 0 && i % 5 === 0)
            return 'fizzbuzz'
        else if (i % 3 === 0)
            return 'fizz'
        else if (i % 5 === 0)
            return 'buzz'
        else return i
    }
}

我認為這是因為return語句使函數無法繼續執行任何操作,但是我不確定,這仍然是新的並且是自學的!

您正確地說這是因為return語句退出了該函數。

在python,java和許多其他語言中也是如此。

干杯!

這是每個不同功能的作用:

function fizzBuzz(limit) {
    for (let i = 0; i <= limit; ++i)
        if (i % 3 === 0 && i % 5 === 0)
            console.log('fizzbuzz')
        else if (i % 3 === 0)
            console.log('fizz')
        else if (i % 5 === 0)
            console.log('buzz')
        else console.log(i)
}

這會遍歷到limit ,並且console.log每次都會顯示FizzBu​​zz測試結果。

function fizzBuzz(limit){
    for (let i = 0; i <= limit; ++i) {
        if (i % 3 === 0 && i % 5 === 0)
            return 'fizzbuzz'
        else if (i % 3 === 0)
            return 'fizz'
        else if (i % 5 === 0)
            return 'buzz'
        else return i
    }
}

這會迭代到limit ,並從函數中返回一個值-第一次迭代時FizzBu​​zz測試的結果。

因此,從本質上講,一個函數將所有FizzBu​​zz結果記錄到控制台,而另一個函數則返回一個FizzBu​​zz結果,您要手動將其記錄到控制台。

return計算其參數(如果提供)並立即結束包含函數的執行。

console.log評估其參數並打印它,繼續執行從其調用的函數。

因此,在帶有return的示例中,您處於進入limit時間的for循環中這一事實並不重要,因為您只需經歷一次並從fizzBuzz return fizzBuzz

將其與另一個示例放在一起:

function print_dog() {
  console.log('dog');
  return;
  console.log('cat');
}

如果您隨后調用print_dog() ,則會看到輸出dog ,但不會看到輸出cat ,因為return在將print_dog轉到console.log('cat');之前執行結束console.log('cat');

是的,您正在考慮正確的路線。

函數中的return語句將返回一個值並停止進一步執行。 其中,Console.log()是產生副作用的函數,它將打印在控制台中提供給它的參數。

在函數內具有console.log()就像在函數內調用函數。

暫無
暫無

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

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