return和console.log()有什么区别

时间:2019-02-01 03:07:10

标签: javascript function fizzbuzz

在函数中使用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语句使函数无法继续执行任何操作,但我不确定,这仍然是新的并且是自学的!

4 个答案:

答案 0 :(得分:0)

您正确地说这是因为return语句退出了函数。

在python,java和许多其他语言中也是如此。

干杯!

答案 1 :(得分:0)

以下是每个不同功能的作用:

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结果,您将其手动记录到控制台。

答案 2 :(得分:0)

return计算其参数(如果提供)并立即结束包含函数的执行。

console.log评估其参数并打印它,继续执行从其调用的函数。

因此,在您使用return的示例中,您处于limit遍历的for循环中这一事实并不重要,因为您只会经历一次并且{{ 1}}来自return

将所有内容与另一个示例放在一起:

fizzBuzz

如果您随后调用function print_dog() { console.log('dog'); return; console.log('cat'); } ,则会看到输出print_dog(),但不会看到输出dog,因为cat结束了{{ 1}},然后才能到达return

答案 3 :(得分:0)

是的,您正在考虑正确的路线。

函数中的return语句将返回一个值并停止进一步执行。其中Console.log()是产生副作用的函数,它将在控制台中打印提供给它的参数。

在函数中具有console.log()就像在函数中调用函数一样。