我在条件语句中看到过多次使用“===”。
谁能告诉我这是什么意思?
类似于三元运算符的东西?
if(typeof(x) == "string")
{
x= (x=== "true");
}
答案 0 :(得分:3)
===
运算符检查是否相等,这意味着type
和value
是相同的。 ==
运算符检查等价,这意味着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(==)运算符完全相同,但不进行类型转换,并且类型必须相同才能被认为是相等的。