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
生成 FizzBuzz 测试结果。
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 函数中的单个值 - 第一次迭代时 FizzBuzz 测试的结果。
基本上,一个函数将所有 FizzBuzz 结果记录到控制台,另一个 returns 一个 FizzBuzz 结果,您手动将其记录到控制台。
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() 就像在函数中调用函数一样。
我在函数中使用 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
生成 FizzBuzz 测试结果。
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 函数中的单个值 - 第一次迭代时 FizzBuzz 测试的结果。
基本上,一个函数将所有 FizzBuzz 结果记录到控制台,另一个 returns 一个 FizzBuzz 结果,您手动将其记录到控制台。
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() 就像在函数中调用函数一样。