即使语句为真,===也不起作用

时间:2017-10-26 09:02:25

标签: javascript

var age =prompt("What is your age?");

if (age === 21) {
 console.log("Happy 21st Birthday!");
}

当我在提示符中写入21时,它给了我一个未定义的,如果我用==替换==那么它将起作用。为什么? 21与我在提示中写的21相同的类型和值

3 个答案:

答案 0 :(得分:2)

您的变量ageString获得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)

===检查变量的valuetype以及prompt返回string value,这就是===返回false的原因,因为{{1}并且您与prompt return string 21进行比较,因此请返回int 21

以下是使用false==

获取输出的方法



string to int conversion