为什么不能在控制台日志中添加整数和变量?

时间:2019-05-08 14:04:43

标签: javascript

我想在控制台日志中打印数字+ 1,但不是将数字加在一起,而是将它们连接在一起。我究竟做错了什么?例如,如果用户输入7,而不是8,则会显示17。

let number = prompt('what is your favorite number')
if(number == 42){
  console.log("Yay! That's my favorite too!")
} else if (number < 42){
  console.log("Eh, that's OK but " + (1 + number) + " would have been better")
} else{
  console.log("LAME. That number is too large!")
}


console.log()

如果用户输入的数字小于42,则应在输入的数字上加1并打印该数字。但是,当前代码将1连接到数字。

4 个答案:

答案 0 :(得分:1)

prompt返回一个字符串...您需要将其转换为数字,例如使用

number = +number;

在用作数字之前

答案 1 :(得分:1)

您可以使用它,因为它将在执行算术运算时将其视为字符串

number = Number(number)

您将获得有关该包装对象here的更多详细信息。

答案 2 :(得分:0)

这是因为提示返回一个字符串。 因此,例如,如果输入 21 并添加 1 ,结果将为 211

您需要在出现如下提示后立即将数字转换为数字:

number = parseInt(number);

答案 3 :(得分:0)

这是因为从执行prompt返回的值是字符串而不是数字。您需要使用parseInt [1]将字符串解析为数字,或者如果您允许使用浮点数parseFloat [2]。

例如:

let response = prompt('what is your favorite number')
let number = parseInt(response, 10) // Convert response into a string
if(number == 42){
  console.log("Yay! That's my favorite too!")
} else if (number < 42){
  console.log("Eh, that's OK but " + (1 + number) + " would have been better")
} else{
  console.log("LAME. That number is too large!")
}


console.log()

参考

[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

[2] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat