我试图理解JavaScript中的相等性.这是代码.
var x = prompt("What is 10 + 10"); if (x === 10) { document.write("Correct") } else { document.write("Incorrect") }
为什么我不能像"==="那样制作等号.所以如果"10"等于("===")到"x"(用户回答)那么它应该是正确的吗?
我搜索了Stack Overflow和W3Schools,但找不到我想要的东西.我想我只是得到这个"真或假"的东西.我的意思是,这似乎是一个非常简单的等式.帮助会很棒谢谢你们!
===
是严格的类型相等,它由值和类型进行比较
==
是非严格类型相等,仅比较值.
换句话说,==
执行类型转换,然后比较相等的值.这里有些例子
"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") }