-8

我在条件语句中看到了许多“===”的用法。

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

类似于三元运算符?

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

5 回答 5

3

运算符检查是否相等,这===意味着typeandvalue是相同的。运算符检查等效性,这==意味着value是相同的并且它忽略类型。

例子

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

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

例如,空字符串为==

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

你也会发现那0==假的

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

以及对象上的空属性:

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

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

于 2013-08-23T12:22:23.537 回答
2

strict equality comparison。这意味着不仅要评估值,还要评估对象的类型。更多信息可在ECMAScript-specification中找到。

于 2013-08-23T12:23:16.963 回答
0

意思是“没有类型强制的===平等”。使用三元组等于值和它们的类型必须相等。

于 2013-08-23T12:21:58.537 回答
0

标识 (===) 运算符的行为与相等 (==) 运算符相同,只是不进行类型转换,并且类型必须相同才能被视为相等。

于 2013-08-23T12:44:30.130 回答
0

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

于 2013-08-23T12:23:35.740 回答