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

JavaScript ArrayBuffer ऑब्जेक्ट

JavaScript ArrayBuffer ऑब्जेक्ट एक जेनेरिक, फिक्स्ड-लेंथ रॉ बाइनरी डेटा बफर को दर्शाने के लिए उपयोग किया जाता है। ArrayBuffer ऑब्जेक्ट की सामग्री को मैनिपुलेट करने के लिए हमें DataView ऑब्जेक्ट बनाना पड़ता है क्योंकि हम सामग्री को सीधे मैनिपुलेट नहीं कर सकते। हम DataView ऑब्जेक्ट का उपयोग करके पढ़ और लिख दोनों सकते हैं।

सिंटैक्स

new ArrayBuffer(byteSize)

byteSize पैरामीटर बाइट्स में ऐरे बफर का आकार निर्दिष्ट करता है जिसे बनाया जाएगा।

उदाहरण

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8" /> 
  <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
  <title>ArrayBuffer ऑब्जेक्ट</title> 
  <style> 
    body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } 
    .sample { font-size: 20px; font-weight: 500; } 
  </style> 
</head> 
<body> 
  <h1>JavaScript ArrayBuffer ऑब्जेक्ट</h1> 
  <div class="sample"></div> 
  <button class="Btn">यहां क्लिक करें</button> 
  <h3>ऊपर दिए गए बटन पर क्लिक करके ऐरे बफर ऑब्जेक्ट की सामग्री बाइनरी में देखें</h3> 
  <script> 
    let fillEle = document.querySelector(".sample"); 
    var buffer = new ArrayBuffer(8); 
    var view1 = new DataView(buffer); 
    view1.setInt16(0, 0x2721); 
    fillEle.innerHTML = view1.getInt16(0).toString(16); 
    document.querySelector('.Btn').addEventListener('click', () => { 
      fillEle.innerHTML = view1.getInt16(0).toString(2); 
    }); 
  </script> 
</body> 
</html>

आउटपुट

JavaScript ArrayBuffer ऑब्जेक्ट

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

JavaScript ArrayBuffer ऑब्जेक्ट

ArrayBuffer की मुख्य विशेषताएं:

  • रॉ बाइनरी डेटा - कोई फॉर्मेट/एन्कोडिंग नहीं, सिर्फ बाइट्स
  • फिक्स्ड साइज - निर्माण के बाद आकार नहीं बदल सकता
  • डायरेक्ट एक्सेस नहीं - व्यू (DataView/TypedArray) के माध्यम से एक्सेस
  • ट्रांसफरेबल - Web Workers के बीच जीरो-कॉपी ट्रांसफर के लिए

व्यू टाइप्स (ArrayBuffer को पढ़ने/लिखने के लिए):

व्यू उपयोग एंडियन कंट्रोल
DataView मल्टी-टाइप, एंडियन कंट्रोल के साथ हाँ (get/set मेथड्स में)
TypedArrays स्पेसिफिक टाइप (Int32Array, Float64Array, आदि) नहीं (प्लेटफॉर्म एंडियन)

DataView ऑपरेशन्स:

const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);

// लिखना (दूसरा पैरामीटर: littleEndian = true/false)
view.setInt8(0, 42);                    // 1 बाइट
view.setInt16(1, 0x1234, true);         // 2 बाइट्स, लिटिल एंडियन
view.setInt32(3, 0x12345678, false);    // 4 बाइट्स, बिग एंडियन
view.setFloat32(7, 3.14, true);         // 4 बाइट्स फ्लोट

// पढ़ना
view.getInt8(0);        // 42
view.getInt16(1, true); // 0x1234
view.getInt32(3, false); // 0x12345678
view.getFloat32(7, true); // 3.14

TypedArray ऑपरेशन्स:

const buffer = new ArrayBuffer(16);
const int32 = new Int32Array(buffer);

int32[0] = 100;
int32[1] = 200;
console.log(int32[0]); // 100

// एक ही बफर पर मल्टीपल व्यूज
const uint8 = new Uint8Array(buffer);
console.log(uint8[0]); // 100 का पहला बाइट

उपयोग के मामले:

  • फाइल अपलोड/डाउनलोड - बाइनरी फाइल हैंडलिंग
  • नेटवर्क प्रोग्रामिंग - WebSocket बाइनरी फ्रेम्स
  • इमेज/ऑडियो प्रोसेसिंग - Canvas, Web Audio API
  • Web Workers - ट्रांसफरेबल ऑब्जेक्ट्स के साथ जीरो-कॉपी पासिंग
  • क्रिप्टोग्राफी - Crypto API के साथ
  1. JavaScript में Blob ऑब्जेक्ट JavaScript में Blob ऑब्जेक्ट

    Blob ऑब्जेक्ट एक अपरिवर्तनीय (immutable) ऑब्जेक्ट को दर्शाता है जिसका उपयोग कच्चे डेटा (raw data) को प्रस्तुत करने के लिए किया जाता है। Blob में size और mime type प्रॉपर्टी होती हैं, ठीक वैसे ही जैसे किसी फाइल में होती हैं। File, Blob से व्युत्पन्न (derived) है और Blob का उपयोग उन स्थानों पर किया जा

  1. जावास्क्रिप्ट में RegExp ऑब्जेक्ट जावास्क्रिप्ट में RegExp ऑब्जेक्ट

    RegExp ऑब्जेक्ट का उपयोग टेक्स्ट में पैटर्न मिलान, खोज और टेक्स्ट के भाग को निकालने के लिए किया जाता है। RegExp ऑब्जेक्ट को या तो RegExp कंस्ट्रक्टर या लिटरल सिंटैक्स का उपयोग करके बनाया जा सकता है। जावास्क्रिप्ट में RegExp ऑब्जेक्ट के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html la

  1. जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र

    एक ऑब्जेक्ट इनिशियलाइज़र एक एक्सप्रेशन है जो हमें नए बनाए गए ऑब्जेक्ट को इनिशियलाइज़ करने की अनुमति देता है। यह एक ऑब्जेक्ट के प्रॉपर्टी नामों और संबंधित मानों के शून्य या अधिक जोड़ों की कॉमा-सेपरेटेड सूची है जो कर्ली ब्रेसेस {} में संलग्न होती है। जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र के लिए निम