我在条件语句中看到了许多“===”的用法。
谁能告诉我这是什么意思?
类似于三元运算符?
if(typeof(x) == "string")
{
x= (x=== "true");
}
我在条件语句中看到了许多“===”的用法。
谁能告诉我这是什么意思?
类似于三元运算符?
if(typeof(x) == "string")
{
x= (x=== "true");
}
运算符检查是否相等,这===
意味着type
andvalue
是相同的。运算符检查等效性,这==
意味着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
===
在这些情况下,当类型很重要时,可能需要使用运算符。
是strict equality comparison
。这意味着不仅要评估值,还要评估对象的类型。更多信息可在ECMAScript-specification中找到。
意思是“没有类型强制的===
平等”。使用三元组等于值和它们的类型必须相等。
标识 (===) 运算符的行为与相等 (==) 运算符相同,只是不进行类型转换,并且类型必须相同才能被视为相等。
"===" 不执行类型转换,因此它可能具有与 "==" 不同的结果。