我试图理解JavaScript中的相等性。这是代码。
var x = prompt("What is 10 + 10");
if (x === 10) {
document.write("Correct")
}
else {
document.write("Incorrect")
}
为什么我不能像“===”那样制作等号。那么如果“10”等于(“===”)到“x”(用户回答)那么它应该是正确的吗?
我在Stack Overflow和W3Schools上搜索过,但找不到我要找的东西。我想我只是得到这个“真或假”的东西。我的意思是,这似乎是一个非常简单的等式。帮助会很棒谢谢你们!
答案 0 :(得分:5)
===
是严格类型相等,它通过值和类型进行比较
==
是非严格类型相等,仅按值进行比较。
换句话说,==
执行类型转换,然后比较相等的值。以下是一些例子
"3" == 3
=> true
说明:字符串3转换为数字3,等于3。
"3" === 3
=> false
说明:字符串未转换为数字。因此,字符串3不等于数字3。
在您的示例中,incorrect
将写入文档。这是因为prompt
的结果返回一个字符串,并且您正在使用数字执行严格相等。
在您的情况下,口译员会看到这样的
if ("10" === 10) {
// does the string "10" equal the number 10? If so
document.write("Correct")
}
else {
// Hey, wait a minute. It doesn't equal the number. I should write "Incorrect" instead.
document.write("Incorrect")
}
答案 1 :(得分:1)
在Javascript中,
==
表示:相当于
===
表示:与
当x
的值为"10"
时,x
相当于10
。
但与<{1}}不相同。