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

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

我在函数中使用 console.log() 与使用 return 语句时得到不同的输出。

当我 运行 使用 return 语句的函数时,我得到一个单字输出,它是以下之一:'fizz' 'buzz' 或 'fizzbuzz',但是当我 运行 使用 console.log 的函数时,输出计数到极限并在遇到多个时说 'fizz' 'buzz' 或 'fizzbuzz' 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,并且 returns 函数中的单个值 - 第一次迭代时 FizzBu​​zz 测试的结果。

基本上,一个函数将所有 FizzBu​​zz 结果记录到控制台,另一个 returns 一个 FizzBu​​zz 结果,您手动将其记录到控制台。

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

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

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

结合另一个例子:

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

如果您随后调用 print_dog(),您将看到输出 dog,但不会看到输出 cat,因为 return 结束执行print_dog 在到达 console.log('cat');

之前

是的,您的思路是正确的。

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

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