(JavaScript)我得到的唯一输出是;[功能:Whobeger]”功能;。有人知道我的函数为什么不起作用吗?

(JavaScript)我得到的唯一输出是;[功能:Whobeger]”功能;。有人知道我的函数为什么不起作用吗?,javascript,function,Javascript,Function,该代码用于接收两个数字作为输入,然后确定哪个数字更大。 我只得到[功能:whobeger]“作为输出。有人知道我哪里出错了吗?let关键字是块范围的,因此当您在if块内使用let初始化变量时,当您在这些块外访问变量时,该变量将不存在。就像在您的例子中一样,当代码到达控制台.log行时,不会有更大的变量,因为它只出现在if块中。但是存在一个具有该名称的函数,因此会记录该函数 //Program is intended to determine the bigger number //Asks th

该代码用于接收两个数字作为输入,然后确定哪个数字更大。
我只得到[功能:whobeger]“作为输出。有人知道我哪里出错了吗?

let
关键字是块范围的,因此当您在if块内使用
let
初始化变量时,当您在这些块外访问变量时,该变量将不存在。就像在您的例子中一样,当代码到达
控制台.log
行时,不会有更大的变量,因为它只出现在if块中。但是存在一个具有该名称的函数,因此会记录该函数

//Program is intended to determine the bigger number
//Asks the user for two numbers
let numberOne = prompt("Give me a number");  
let numberTwo = prompt("Give me another number");  

//Checks which number is bigger  
function whoBigger(numberOne,numberTwo) {   
    if (numberOne > numberTwo) {  
        let whoBigger = "First number is bigger";  
    } else if (numberTwo > numberOne){  
        let whoBigger = "Second number is bigger";  
    } else{ 
        let whoBigger = "The numbers are equal";
    }

    console.log(whoBigger);

}

whoBigger(numberOne, numberTwo);

注意:函数和变量的名称不要相同。最佳实践是保持所有名称的唯一性。在我的回答中,我保留了相同的名称,因为代码中的错误与名称无关。

我建议不要将具有相同名称的变量用作函数。这将在以后调试时引起很多麻烦
function whoBigger(numberOne,numberTwo) {   
    // declaring the variable
    let whoBigger = ''

    if (numberOne>numberTwo) {  
         whoBigger="First number is bigger";  
    } else if (numberTwo>numberOne){  
         whoBigger="Second number is bigger";  
    } else{ 
         whoBigger="The numbers are equal";
    }

    console.log(whoBigger);

}