DataView एक लो-लेवल इंटरफेस है जो ArrayBuffer (कच्चे बाइनरी डेटा का निश्चित-लंबाई कंटेनर) को पढ़ने/लिखने के लिए कई संख्या प्रकारों (Int8, Uint16, Float32, आदि) में अनुमति देता है। एंडियननेस नियंत्रण प्रदान करता है।
उदाहरण
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>
body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; padding: 20px; }
.sample { font-size: 20px; font-weight: 500; font-family: monospace; }
button { padding: 10px 20px; background: #6f42c1; color: white; border: none; border-radius: 4px; cursor: pointer; }
</style> </head> <body>
<h1>JavaScript DataView</h1>
<div class="sample"></div>
<button class="Btn">ArrayBuffer को DataView से पढ़ें</button>
<h3>DataView() का उपयोग करके ArrayBuffer कंटेंट बदलें</h3>
<script>
const fillEle = document.querySelector(".sample");
// 8 बाइट का ArrayBuffer बनाएं
const buffer = new ArrayBuffer(8);
// DataView बनाएं
const view = new DataView(buffer);
// ऑफसेट 0 पर 16-बिट साइनड इंटीजर लिखें (बिग एंडियन डिफ़ॉल्ट)
view.setInt16(0, 0x2721); // 10017 डेसीमल
// हेक्स में पढ़ें
fillEle.innerHTML = "हेक्स: " + view.getInt16(0).toString(16); // "2721"
document.querySelector(".Btn").addEventListener("click", () => {
// बाइनरी में पढ़ें
fillEle.innerHTML = "बाइनरी: " + view.getInt16(0).toString(2); // "10011100100001"
});
</script> </body> </html>
आउटपुट
प्रारंभिक: हेक्स: 2721
क्लिक के बाद: बाइनरी: 10011100100001
DataView मेथड्स
| मेथड | आकार | विवरण |
|---|---|---|
| getInt8 / setInt8 | 1 बाइट | साइनड 8-बिट इंटीजर |
| getUint8 / setUint8 | 1 बाइट | अनसाइनड 8-बिट इंटीजर |
| getInt16 / setInt16 | 2 बाइट | साइनड 16-बिट |
| getUint16 / setUint16 | 2 बाइट | अनसाइनड 16-बिट |
| getInt32 / setInt32 | 4 बाइट | साइनड 32-बिट |
| getUint32 / setUint32 | 4 बाइट | अनसाइनड 32-बिट |
| getFloat32 / setFloat32 | 4 बाइट | 32-बिट फ्लोट |
| getFloat64 / setFloat64 | 8 बाइट | 64-बिट डबल |
| getBigInt64 / setBigInt64 | 8 बाइट | BigInt 64-बिट (ES2020) |
| getBigUint64 / setBigUint64 | 8 बाइट | अनसाइनड BigInt 64-बिट |
एंडियननेस नियंत्रण
const buffer = new ArrayBuffer(4); const view = new DataView(buffer); view.setUint32(0, 0x12345678, false); // बिग एंडियन (डिफ़ॉल्ट): 12 34 56 78 view.setUint32(0, 0x12345678, true); // लिटिल एंडियन: 78 56 34 12
उपयोग के मामले
- बाइनरी फाइल फॉर्मेट पार्सिंग (इमेज, ऑडियो, वीडियो)
- नेटवर्क प्रोटोकॉल इम्प्लीमेंटेशन
- WebGL / WebGPU बफर प्रबंधन
- क्रिप्टोग्राफी ऑपरेशन
- WebAssembly के साथ इंटरऑप