在JavaScript中,Equal to('=='&'===')之间的区别是什么?

时间:2015-12-13 16:43:14

标签: javascript html equality

我试图理解JavaScript中的相等性。这是代码。

    var x = prompt("What is 10 + 10");
    if (x === 10) {
        document.write("Correct")
    }
    else {
        document.write("Incorrect")
    }

为什么我不能像“===”那样制作等号。那么如果“10”等于(“===”)到“x”(用户回答)那么它应该是正确的吗?

我在Stack Overflow和W3Schools上搜索过,但找不到我要找的东西。我想我只是得到这个“真或假”的东西。我的意思是,这似乎是一个非常简单的等式。帮助会很棒谢谢你们!

2 个答案:

答案 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}}不相同