কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্ট ArrayBuffer অবজেক্ট

জাভাস্ক্রিপ্ট ArrayBuffer অবজেক্ট একটি জেনেরিক, ফিক্সড-লেন্থ র‍ বাইনারি ডেটা বাফার রিপ্রেজেন্ট করতে ব্যবহৃত হয়। ArrayBuffer-এর কন্টেন্ট সরাসরি ম্যানিপুলেট করা যায় না; এর জন্য DataView বা টাইপড অ্যারে (TypedArray) অবজেক্ট তৈরি করতে হয়। 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>Document</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 object</h1> 
  <div class="sample"></div> 
  <button class="Btn">CLICK HERE</button> 
  <h3>Click on the above button to see the array buffer object contents in binary</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>

আউটপুট

প্রথমে হেক্স: 2721। ক্লিক করলে বাইনারি: 10011100100001

ব্যাখ্যা

  • new ArrayBuffer(8) → ৮ বাইট (৬৪ বিট) alok কোরে
  • DataView → বাফার পড়া/লেখার ইন্টারফেস
  • setInt16(0, 0x2721) → অফসেট ০-এ ১৬-বিট ইন্টিজার লিখলো (বিগ-এন্ডিয়ান ডিফল্ট)
  • getInt16(0).toString(16) → হেক্সাডেসিমাল স্ট্রিং
  • getInt16(0).toString(2) → বাইনারি স্ট্রিং

TypedArray ব্যবহার (সরলতর)

const buffer = new ArrayBuffer(8);
const int16 = new Int16Array(buffer);
int16[0] = 0x2721;
console.log(int16[0].toString(2)); // "10011100100001"

ArrayBuffer ব্যবহার ক্ষেত্র

  • ফাইল আপলোড/ডাউনলোড (Blob, FileReader)
  • WebSocket বাইনারি মেসেজ
  • Canvas/WebGL পিক্সেল ডেটা
  • WebAssembly মেমোরি শেয়ারিং
  • ক্রিপ্টোগ্রাফি (Crypto API)
  1. জাভাস্ক্রিপ্টে Map অবজেক্ট

  2. জাভাস্ক্রিপ্টে Blob অবজেক্ট

  3. জাভাস্ক্রিপ্টে RegExp অবজেক্ট

  4. জাভাস্ক্রিপ্টে অবজেক্ট ইলিশিয়ালাইজার