JavaScript - Symbol.valueOf() 方法



JavaScript Symbol.valueOf() 方法可用于获取 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()] = 'QikepuCom';
	 	 	 	 	 	 }
	 	 	 	 	}
	 	 	 	 	const a = new x();
	 	 	 	 	document.write(a[Symbol.valueOf()]);
	 	 	 </script>
	 	</body>
</html>

当我们执行脚本时,它会在网页上显示一个文本。