javascript中“===”的含义是什么?

时间:2013-08-23 12:20:30

标签: javascript

我在条件语句中看到过多次使用“===”。

谁能告诉我这是什么意思?

类似于三元运算符的东西?

if(typeof(x) == "string")
{
    x= (x=== "true");
}

5 个答案:

答案 0 :(得分:3)

===运算符检查是否相等,这意味着typevalue是相同的。 ==运算符检查等价,这意味着value是相同的,它忽略了类型。

示例

alert("1" == 1); //alerts true
alert("1" === 1); //alerts false, types are different.
alert(1 === 1); //alerts true

由于语言的松散类型和变量的虚假/虚假性质,这在Javascript中很有用。

例如,空字符串为== false

("") ? alert(true): alert(false); //alerts false

您还会发现0== false

(0) ? alert(true): alert(false); //alerts false

以及对象上的空属性:

({}.prop) ? alert(true): alert(false); //alerts false

在这些情况下,当类型很重要时,可能需要使用===运算符。

答案 1 :(得分:2)

这是strict equality comparison。这意味着不仅要评估值,还要评估对象的类型。有关详细信息,请参阅ECMAScript-specification

答案 2 :(得分:1)

“===”不执行类型转换,因此它的结果可能与“==”不同。

答案 3 :(得分:0)

===意味着“没有类型强制的平等”。使用三元组等于值及其类型必须相等。

答案 4 :(得分:0)

identity(===)运算符的行为与equality(==)运算符完全相同,但不进行类型转换,并且类型必须相同才能被认为是相等的。