Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript DataView: ArrayBuffer पर लो-लेवल बाइनरी एक्सेस

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 / setInt81 बाइटसाइनड 8-बिट इंटीजर
getUint8 / setUint81 बाइटअनसाइनड 8-बिट इंटीजर
getInt16 / setInt162 बाइटसाइनड 16-बिट
getUint16 / setUint162 बाइटअनसाइनड 16-बिट
getInt32 / setInt324 बाइटसाइनड 32-बिट
getUint32 / setUint324 बाइटअनसाइनड 32-बिट
getFloat32 / setFloat324 बाइट32-बिट फ्लोट
getFloat64 / setFloat648 बाइट64-बिट डबल
getBigInt64 / setBigInt648 बाइटBigInt 64-बिट (ES2020)
getBigUint64 / setBigUint648 बाइटअनसाइनड 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 के साथ इंटरऑप
  1. JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स

    const ES2015 (ES6) में पेश किया गया एक ब्लॉक-स्कोप्ड वेरिएबल डिक्लेरेशन है जो रीअसाइनमेंट को रोकता है। यह आधुनिक JavaScript में डिफ़ॉल्ट विकल्प होना चाहिए जब रीअसाइनमेंट की आवश्यकता न हो। उदाहरण { try { a = 44; // TypeError: Assignment to constant variable } catch (e

  1. JavaScript escape(): अप्रचलित URI एन्कोडिंग फंक्शन JavaScript escape(): अप्रचलित URI एन्कोडिंग फंक्शन

    चेतावनी: escape() फंक्शन JavaScript 1.5 से अप्रचलित (deprecated) है। आधुनिक कोड में encodeURI() या encodeURIComponent() का उपयोग करें। ऐतिहासिक उदाहरण { sampleEle.innerHTML = escape(url); }); </script> </body> </html> आउटपुट https%3A//www.google.com/images%3Fsize%

  1. JavaScript Let कीवर्ड JavaScript Let कीवर्ड

    2015 में पेश किया गया JavaScript Let कीवर्ड हमें ब्लॉक-स्कोप्ड वेरिएबल परिभाषित करने की अनुमति देता है।उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale