检查字符串值时,我使用'=='。但我见过使用 '===' 的实例。例如,而不是
if("true" == "true"){
alert('true');
}
这是使用的:
if("true" === "true"){
alert('true');
}
这背后的原因是什么?这两个用例似乎都按预期工作。
检查字符串值时,我使用'=='。但我见过使用 '===' 的实例。例如,而不是
if("true" == "true"){
alert('true');
}
这是使用的:
if("true" === "true"){
alert('true');
}
这背后的原因是什么?这两个用例似乎都按预期工作。
===
运算符确保不仅值相等,而且要比较的两个项目也属于同一类型;而==
操作员只检查两个项目的值是否相等
正如评论中提到的@amnotiam,您可能还想查看抽象平等比较算法
10 == '10' // true | check value: 10 equal 10
10 == 10 // true | check value: 10 equal 10
10 === '10' // false | check type: int not equal string
10 === 10 // true | check type: int equal int, check value: 10 equal 10
检查类型与否。
===
用于检查类型的值..
var str="300";
//this gt execute
if(str==="300")
{
alert("this alert get executed");
}
//this not execute
if(str===300)
{
alert("this alert not get executed");
}
对于==
以下两个代码都是有效的,因为它不检查类型
//this get execute
if(str=="300")
{
alert("this alert get executed");
}
//this get execute
if(str==300)
{
alert("this alert get executed");
}
第一次检查只是逻辑测试,第二次检查是逻辑和类型测试。
== 检查一侧是否等于第二个,而 === 检查左侧是否等于第二个但来自同一类型。
if("true" == "true")
检查两者是否是相同的字符串
if("true" === "true")
检查两者是否都是相同的字符串并且都是字符串值。
另请注意,有一个 !== 运算符,它进行负值和类型比较。