Javascript JS新手:为什么这个函数在for循环中只调用一次?

Javascript JS新手:为什么这个函数在for循环中只调用一次?,javascript,node.js,for-loop,google-chrome-devtools,console.log,Javascript,Node.js,For Loop,Google Chrome Devtools,Console.log,我正在学习JS并使用chrome开发工具控制台来运行代码。如果下面的代码在for循环中,为什么只调用一次randomNumbe() function randomNumber(){ let randomNumber = Math.random() * 10; return randomNumber; } for(let i=0; i<25; i++){ randomNumber(); } 除非在代码中显式添加console.log()语句,否则控制台仅显示代码运行

我正在学习JS并使用chrome开发工具控制台来运行代码。如果下面的代码在for循环中,为什么只调用一次
randomNumbe()

function randomNumber(){
    let randomNumber = Math.random() * 10;
    return randomNumber;
}
for(let i=0; i<25; i++){
    randomNumber();
}

除非在代码中显式添加
console.log()
语句,否则控制台仅显示代码运行结束时计算的最终值。因此,您在控制台中只看到一个预期的最终值。如果在循环中的任意位置添加
console.log()
语句,则将获得循环每次迭代的输出

因此,您的函数在循环的所有25次迭代中都被调用,您只是没有看到任何输出,因为它没有生成任何特定的输出

例如:

function randomNumber(){
    let randomNumber = Math.random() * 10;
    return randomNumber;
}
for(let i=0; i<25; i++){
    let x = randomNumber();
    console.log(x);            // make some visible output in the loop
}
函数randomNumber(){
让randomNumber=Math.random()*10;
返回随机数;
}

对于(设i=0;i除非您显式地向代码中添加
console.log()
语句,否则控制台仅显示代码运行结束时计算的最终值。因此,在控制台中只能看到一个预期的最终值。如果您添加
console.log()
语句在循环中的任何位置,都将获得循环每次迭代的输出

因此,您的函数在循环的所有25次迭代中都被调用,您只是没有看到任何输出,因为它没有生成任何特定的输出

例如:

function randomNumber(){
    let randomNumber = Math.random() * 10;
    return randomNumber;
}
for(let i=0; i<25; i++){
    let x = randomNumber();
    console.log(x);            // make some visible output in the loop
}
函数randomNumber(){
让randomNumber=Math.random()*10;
返回随机数;
}

对于(让i=0;i可能是一些优化。因为您没有使用randomNumber()的值)而且它没有任何副作用,浏览器会优化代码,一旦确定可以安全地忽略它,就不会调用它。您是如何确定它只进行一次调用的?此函数每次调用一次。您的函数按预期调用25次(在
randomNumber
函数中添加一个console.log,您将看到)。您只是看到一个值打印到控制台,因为整个代码的计算结果都是这样。这就像键入
Math.random()
,然后按Enter键可能会进行一些优化。因为您没有使用randomNumber()的值而且它没有任何副作用,浏览器会优化代码,一旦确定可以安全地忽略它,就不会调用它。您是如何确定它只进行一次调用的?此函数每次调用一次。您的函数按预期调用25次(在
randomNumber
函数中添加一个console.log,您将看到)。您只是看到一个值打印到控制台,因为整个代码的计算结果都是这样。这就像键入
Math.random()
,然后按ENTER键谢谢!这很有意义!因此控制台的行为是只显示最终值,除非它被迫使用console.log()显示所有值谢谢!这是有道理的!所以控制台的行为是只显示最终值,除非它被迫使用console.log()显示所有值