在js中用户输入的值和直接赋值有什么不同嘛

在js中用户输入的值和直接赋值有什么不同嘛
function getMax(num1,num2,num3){
  if(num1>num2 && num1>num3){
    return num1;
  }else if(num2>num3 && num2>num1){
    return num2;
  }else{
    return num3;
  }
}
console.log(getMax(prompt('请输入第一个数'), prompt('请输入第二个数'), prompt('请输入第三个数')));

img


输入数字

img


img


img


返回结果为7

img


但是我把他改成用var给值他返回的结果又是11了

img


img


不能明白这是什么问题,还是说只是我打错了,有知道的嘛><

因为prompt接收之后返回值是字符类型,字符类型比较 7>4>11,要转成数字类型再比较

function getMax(num1,num2,num3){
  if(num1>num2 && num1>num3){
    return num1;
  }else if(num2>num3 && num2>num1){
    return num2;
  }else{
    return num3;
  }
}
console.log(getMax(Number(prompt('请输入第一个数')), Number(prompt('请输入第二个数')), Number(prompt('请输入第三个数'))));

你好,prompt输入接收的值是字符串,而var直接赋值可以接收数值。希望可以解决你的问题。

你好,prompt输入接收的值是字符串,而var直接赋值可以接收数值。希望可以解决你的问题。