JavaScript date.@@toPrimitive() फंक्शन (असल में Symbol.toPrimitive) डेट ऑब्जेक्ट को प्रिमिटिव वैल्यू में बदलता है।
उदाहरण
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Date toPrimitive</title>
<style>
body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; }
.sample { font-size: 18px; font-weight: 500; }
</style>
</head>
<body>
<h1>JavaScript date.@@toPrimitive() फंक्शन</h1>
<div class="sample"></div>
<button class="Btn">यहां क्लिक करें</button>
<h3>ऊपर दिए गए बटन पर क्लिक करके डेट को प्रिमिटिव वैल्यू के रूप में देखें</h3>
<script>
let fillEle = document.querySelector(".sample");
let date = new Date();
let primitiveDef = date[Symbol.toPrimitive]("default");
let primitiveNum = date[Symbol.toPrimitive]("number");
document.querySelector(".Btn").addEventListener("click", () => {
fillEle.innerHTML += "Hint = default :" + primitiveDef + "<br>";
fillEle.innerHTML += "Hint = number :" + primitiveNum;
});
</script>
</body>
</html>
आउटपुट

"यहां क्लिक करें" बटन पर क्लिक करने पर:

Symbol.toPrimitive समझाया गया:
Symbol.toPrimitive एक बिल्ट-इन सिंबल है जो ऑब्जेक्ट को प्रिमिटिव वैल्यू में बदलने के लिए फंक्शन निर्दिष्ट करता है। यह फंक्शन एक hint आर्गुमेंट प्राप्त करता है:
| Hint | विवरण | Date के लिए रिटर्न |
|---|---|---|
"string" |
स्ट्रिंग कन्वर्जन (उदाहरण: String(date), alert(date)) |
डेट स्ट्रिंग (toString() के समान) |
"number" |
नंबर कन्वर्जन (उदाहरण: Number(date), +date) |
टाइमस्टैम्प (मिलिसेकंड्स, valueOf() के समान) |
"default" |
डिफ़ॉल्ट कन्वर्जन (उदाहरण: date + '', date == value) |
डेट के लिए स्ट्रिंग (toString() के समान) |
Date ऑब्जेक्ट का डिफ़ॉल्ट व्यवहार:
const date = new Date('2023-01-15T10:30:00');
// स्ट्रिंग कन्वर्जन
String(date) // "Sun Jan 15 2023 10:30:00 GMT+0530 (India Standard Time)"
date.toString() // समान
date + '' // समान (default hint)
// नंबर कन्वर्जन
Number(date) // 1673766600000 (मिलिसेकंड्स)
+date // समान
date.valueOf() // समान
date.getTime() // समान
// डिफ़ॉल्ट (== तुलना में)
date == 'Sun Jan 15 2023...' // true (string comparison)
date == 1673766600000 // true (number comparison)
कस्टम ऑब्जेक्ट में Symbol.toPrimitive:
const myObject = {
value: 42,
[Symbol.toPrimitive](hint) {
switch (hint) {
case 'number': return this.value;
case 'string': return `[Value: ${this.value}]`;
default: return this.value;
}
}
};
console.log(+myObject); // 42 (number)
console.log(String(myObject)); // "[Value: 42]" (string)
console.log(myObject + ''); // 42 (default -> number for this obj)
नोट:
उदाहरण में date[Symbol.toPrimitive]("default") डायरेक्ट कॉल किया गया है, लेकिन आमतौर पर यह JavaScript इंजन द्वारा आंतरिक रूप से कॉल किया जाता है जब ऑब्जेक्ट को प्रिमिटिव में कन्वर्ट करने की आवश्यकता होती है।