如何比较 Javascript 中的 String 和 Symbol?

How to compare String and Symbol in Javascript?

我在 Javascript 中定义了一个 String 和一个具有相同值 Hello, Stack Overflow!Symbol。我如何比较它们是否相等?我在下面尝试过的所有比较 return false.

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);

Symbol() 总是 return 一个唯一值 您可以稍微不同地使用它,如下所示

Symbol.keyFor(Symbol.for("Hello, Stack Overflow!"))== "Hello, Stack Overflow!"; // 真

请阅读更多 https://developer.mozilla.org/en-US/docs/Glossary/Symbol

您可以将字符串转换为符号,然后进行比较。

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