2016-08-23 14 views
-6

なぜJavaScriptは"xy" == new String("xy")をtrueとして扱いますが、"xy" === new String("xy")をfalseとして扱いますか?ここで==ここと==異なるのはなぜですか?

私はhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operatorsを読んで、まだ

+0

です。 'typeof" xy "'と 'typeof new String(" xy ")'と '==='の型も比較します。 – Tushar

+0

===また、*型*を比較し、同じではありません。 – Bathsheba

+4

重複した質問はしないでください。http://stackoverflow.com/questions/359494/which-equals-operator-vs-should-be-used-in-javascript-comparisons –

答えて

4
typeof "xy" 

混乱していていますが、 "文字列"

typeof new String("xy") 

は、 "オブジェクト"

===は、値と型

==の両方を比較しているあります型を変換してからt彼の値

+3

よろしくお願いします。次に、これがどのように質問に答えます。 – Tushar

+0

@Tusharごめんねごめんね。 – DigitalShotts

+1

_ ===値と型の両方を比較する。 '=='が 'true'を返す理由を説明できますか? – Tushar

0

==演算子は単に値を比較します。===は値と型を比較します。従って"xy"のタイプはstringであり、タイプはnew String()である。その2つの比較の違いを見るのは、

関連する問題