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>
当我们执行脚本时,它会在网页上显示一个文本。