var age =prompt("What is your age?");
if (age === 21) {
console.log("Happy 21st Birthday!");
}
当我在提示符中写入21时,它给了我一个未定义的,如果我用==替换==那么它将起作用。为什么? 21与我在提示中写的21相同的类型和值
答案 0 :(得分:2)
您的变量age
从String
获得prompt
。
要使其正常工作,您需要使用运算符int
将其转换为+
:
如果在这种情况下使用+
运算符让您感到陌生,则可以始终使用函数parseInt()
。它将实现相同的结果。
var age = +prompt("What is your age?");
// ^ Converts your String to an int
if (age === 21) {
console.log("Happy 21st Birthday!");
}

答案 1 :(得分:0)
prompt()函数返回一个字符串。你检查一个整数。
基本上==
检查变量的值是否相等。
===
检查值和类型是否相等。
您可以在此处找到更多相关信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness
答案 2 :(得分:0)
===
检查变量的value
和type
以及prompt
返回string value
,这就是===
返回false的原因,因为{{1}并且您与prompt return string 21
进行比较,因此请返回int 21
以下是使用false
或==
string to int conversion