なぜJavaScriptは"xy" == new String("xy")
をtrueとして扱いますが、"xy" === new String("xy")
をfalseとして扱いますか?ここで==ここと==異なるのはなぜですか?
私はhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operatorsを読んで、まだ
なぜJavaScriptは"xy" == new String("xy")
をtrueとして扱いますが、"xy" === new String("xy")
をfalseとして扱いますか?ここで==ここと==異なるのはなぜですか?
私はhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operatorsを読んで、まだ
typeof "xy"
混乱していていますが、 "文字列"
typeof new String("xy")
は、 "オブジェクト"
===
は、値と型
==
の両方を比較しているあります型を変換してからt彼の値
よろしくお願いします。次に、これがどのように質問に答えます。 – Tushar
@Tusharごめんねごめんね。 – DigitalShotts
_ ===値と型の両方を比較する。 '=='が 'true'を返す理由を説明できますか? – Tushar
==
演算子は単に値を比較します。===
は値と型を比較します。従って"xy"
のタイプはstring
であり、タイプはnew String()
である。その2つの比較の違いを見るのは、
です。 'typeof" xy "'と 'typeof new String(" xy ")'と '==='の型も比較します。 – Tushar
===また、*型*を比較し、同じではありません。 – Bathsheba
重複した質問はしないでください。http://stackoverflow.com/questions/359494/which-equals-operator-vs-should-be-used-in-javascript-comparisons –