2017-07-19 10 views
0

私はの文字列Symbolを同じ値のHello, Stack Overflow!でJavascriptで定義しました。彼らを平等のために比較するにはどうすればいいですか?私が下に試したすべての比較はfalseを返します。あなたが若干異なるJavascriptで文字列と記号を比較するには?

Symbol.keyFor(Symbol.for(下記のようにそれを使用することができます

var string="Hello, Stack Overflow!"; 
 
var symbol=Symbol("Hello, Stack Overflow!"); 
 

 
console.log(string == symbol); 
 
console.log(string == symbol.toPrimitive); 
 
console.log(string == symbol.toString); 
 
console.log(string == symbol.toStringTag); 
 
console.log(string === symbol); 
 
console.log(string === symbol.toPrimitive); 
 
console.log(string === symbol.toString); 
 
console.log(string === symbol.toStringTag);

+0

シンボルに*値* 'Hello、Stack Overflow! 'がありません。その* description *がその文字列に設定されていることを意味しますか? – Bergi

答えて

1

以上をお読みください。

console.log(Symbol(string).toString() == symbol.toString()) 
+0

はい、これは動作します。ありがとう。 – Beginner

1

記号()は常に一意の値を返します。 "こんにちは、スタックオーバーフロー!" ))== "こんにちは、スタックオーバーフロー!"; //真

あなたは比較を行う、シンボルに文字列を変換することができますhttps://developer.mozilla.org/en-US/docs/Glossary/Symbol

+0

他に良いソリューションはありませんか? **シンボル**定義はこの比較ではまったく使用されていませんが、**文字列**のみが使用されます。 – Beginner

関連する問題