JavaScript - Symbol.valueOf() 方法
JavaScript Symbol.valueOf() 方法可用于获取 Symbol 对象的原始值。Symbol 是一种不可变的、独特的数据类型,可用作唯一标识符。为了防止名称冲突,它们在对象属性中用作键。
当遇到 Symbol 对象且操作需要原始值时,它会自动调用 valueOf() 方法。此方法可用于需要原始值的情况,例如算术运算或比较,因为它返回与 Symbol 对象关联的原始值。
语法
以下是 JavaScript Symbol.valueOf() 方法的语法 -
valueOf()
参数
此属性不接受任何类型的参数。
返回值
此属性返回指定符号对象的原始值。
示例
示例 1
让我们看下面的示例,我们将比较两个符号并检查输出。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = Symbol('TP');
const y = Symbol('tp');
document.write(x.valueOf() === y.valueOf());
</script>
</body>
</html>
如果我们执行上述程序,网页上会显示 false,因为符号虽然看起来相似,但却是唯一的。
示例 2
考虑另一个示例,我们将在 map 中使用 Symbol.valueof() 方法。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = Symbol('TP');
const map = new Map();
map.set(x, 'WELCOME');
document.write(map.get(x).valueOf());
</script>
</body>
</html>
执行上述脚本后,网页上将显示一段文本。
示例 3
在下面的示例中,我们将使用 Symbol.valueof() 并在类中分配一个唯一值。即使创建了新的实例,它也会返回其自身的值。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
class x {
constructor() {
this[Symbol.valueOf()] = 'TutorialsPoint';
}
}
const a = new x();
document.write(a[Symbol.valueOf()]);
</script>
</body>
</html>
当我们执行脚本时,它将在网页上显示一段文本。

