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

Javascript ==即使该语句为真,也不起作用,javascript,Javascript,当我在提示符中写入21时,它会给我一个未定义的值,如果我用==替换===则它会工作。为什么?21与我在提示符中写入的21的类型和值相同您的变量age从提示符中获取字符串。 要使其工作,您需要使用运算符+,将其转换为int: 在这种情况下,如果对+运算符的使用感到陌生,则始终可以使用该函数。它将达到同样的结果 var age=+Prompt您的年龄是多少?; //^将字符串转换为整数 如果年龄===21{ 21岁生日快乐!; } prompt函数返回一个字符串。检查是否有整数 基本上==检查变量

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

您的变量age从提示符中获取字符串。 要使其工作,您需要使用运算符+,将其转换为int:

在这种情况下,如果对+运算符的使用感到陌生,则始终可以使用该函数。它将达到同样的结果

var age=+Prompt您的年龄是多少?; //^将字符串转换为整数 如果年龄===21{ 21岁生日快乐!;
} prompt函数返回一个字符串。检查是否有整数

基本上==检查变量的值是否相等

==检查值和类型是否相等

您可以在此处找到更多信息:

===检查变量的值和类型以及提示返回字符串值,这就是为什么===返回false,因为提示返回字符串21,而您与int 21比较,所以返回false

下面是使用==或字符串到整数转换获得输出的方法

var age=提示您的年龄是多少?; 如果年龄==21{ 21岁生日快乐!; } //或 如果parseIntage==21{ 21岁生日快乐!;
}您知道==和===之间的区别吗?提示符将得到一个字符串,您正在将数字与字符串进行比较。这就是为什么你的条件变为错误的原因检查变量的值是否相等。==检查值和类型是否相等。对于初学者来说,parseInt的可能重复可能比使用short-Hand更好。我看到许多人不知道速记,甚至是高级速记。我试着尽可能多地宣传它:@AndrewBone我看它没有问题,这是一天结束时的答案,我今天学到了一些新东西。谢谢Zenoo,说得好。也许编辑你的答案是值得的,尽管@AndrewBone我同意,你的电话只是建议添加这两种方法,可能还有一个指向速记文档的链接。
var age =prompt("What is your age?");

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