2016-11-26 7 views
-2

10 == "10"と比較すると、 JavaScriptは真であると出力します。最初のオペランド10(Number)が "10"(String)に変換されるか、このdocument10 == "10"でテーブルを使用してJavaScriptで10 == "10"の場合==どのように動作しますか?

+2

最後の文章は質問であるはずですか? – melpomene

+1

==演算子を使用すると、2つの値が互いに等しいことを確認するだけです。それは完全に型を無視します。===演算子は、型と値の両方をチェックして、より厳密な演算子にします。 – Jackthomson

+0

@TheSETJ OPが '=='がどのように動作するのかを知りたいので、正確な重複はないと思います – Rajesh

答えて

3

コードは文字列がある、それは一般的なデータ型に両方のオペランドを変換しませんしようとするとどのような二重の等号数

0

に変換されるA === ToNumber(B)すなわちとして振る舞うことを意味します。両方の値を整数に変換しようとします。そのうちの1つがintに変換されると、両方が変換され、出力が返されます。両方が失敗すると、文字列比較が実行されます。

console.log(10 == "10") 
 
console.log(true == "true") 
 
console.log({} == '[object Object]')

理由は、第二parseInt(true)は1とparseInt('true')あなたはリンクを次のようにアルゴリズムを読むことができNaN

を返します戻りますのでfalseが返されます。The Abstract Equality Comparison Algorithm

1

==はチェックを意味し、値の場合

===は、値とタイプのチェックを意味します。

したがって、10 =='10'を比較すると、javascriptエンジンは値のみをチェックするため、trueです。

10 === '10'は、yeild falseとなります。 詳細については、mozillaのequality comparisonをお読みください。

2

==演算子は、が必要な型変換を行った後に等価性を比較します。 ===演算子は変換を行わないため、2つの値が同じタイプでない場合、===は単にfalseを返すだけです。我々のケースでは、10 == "10"型変換の後、比較の両辺は等しいので、trueを返します。

+0

*タイプ変換後*どのタイプのどちらのタイプに変換? –

0

これはまさに質問かどうかわかりませんが、そうであればわかりません。

JavaScript comparison operators: Identity vs. Equality

Which equals operator (== vs ===) should be used in JavaScript comparisons?

:最初に、私はあなたのポイントが正しいことを言う必要がある==平等が同一でないかどうかを確認し、第二あなたはこれらのリンクは便利かもしれないので、暗黙の型変換はここに起こりますJavaScript - === vs == operators performance

Equality comparisons and sameness

アップデート:私は詐欺についての私の間違いを訂正しました@melpomeneに感謝します。

関連する問題