文字列値をチェックするときは、「==」を使用します。しかし、'==='が使用されている例を見てきました。たとえば、代わりに
if("true" == "true"){
alert('true');
}
これが使用されます:
if("true" === "true"){
alert('true');
}
この背後にある理由は何ですか?どちらのユースケースも期待どおりに機能しているようです。
文字列値をチェックするときは、「==」を使用します。しかし、'==='が使用されている例を見てきました。たとえば、代わりに
if("true" == "true"){
alert('true');
}
これが使用されます:
if("true" === "true"){
alert('true');
}
この背後にある理由は何ですか?どちらのユースケースも期待どおりに機能しているようです。
===
オペレーターは、値が等しいだけでなく、比較される2つの項目も同じタイプであることを確認します。一方、==
演算子は2つの項目の値が等しいことを確認するだけです。
コメントで@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");
}
最初のチェックは単なる論理テストであり、2番目のチェックは論理テストとタイプテストです。
==片側が2番目の側と等しいかどうかを確認し、===左側が2番目の側と等しいが、同じタイプのものであるかどうかを確認します。
if("true" == "true")
両方が同じ文字列であるかどうかを確認します
if("true" === "true")
両方が同じ文字列であり、両方が文字列値であるかどうかを確認してください。
負の値と型の比較を行う!==演算子もあることに注意してください。