我想在控制台日志中打印数字+ 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连接到数字。
答案 0 :(得分:1)
prompt
返回一个字符串...您需要将其转换为数字,例如使用
number = +number;
在用作数字之前
答案 1 :(得分:1)
答案 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