Sobes.tech
Junior

რა მონაცემთა სტრუქტურები არსებობს JavaScript-ში?

sobes.tech AI

პასუხი AI-სგან

სადაც მარტივი მონაცემთა ტიპები: String (სტრიქონები), Number (ციფრები), BigInt (დიდი მთელი რიცხვები), Boolean (ლოგიკური ტიპი), Undefined (არასახელებული მნიშვნელობა), Symbol (სიმბოლები), Null (ცარიელი მნიშვნელობა).

მრავალმხრივი მონაცემთა სტრუქტურები:

  • Object (ობიექტი): გასაღები-მნიშვნელობის წყვილების კოლექცია.
    // მარტივი ობიექტი
    const user = {
      name: 'ივანი',
      age: 30
    };
    
  • Array (სია): ელემენტების მოწესრიგებული კოლექცია.
    // რიცხვების სია
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (რუკა): გასაღები-მნიშვნელობის წყვილების კოლექცია, სადაც გასაღებები შეიძლება იყოს ნებისმიერი ტიპის მონაცემი და ინახავს შეტანის წესს.
    // სხვადასხვა ტიპის გასაღებები
    const map = new Map();
    map.set('name', 'პეტრე');
    map.set(1, 'რიცხვი');
    
  • Set (საგროვი): უნიკალური მნიშვნელობების კოლექცია ნებისმიერი ტიპის.
    // უნიკალური რიცხვების კოლექცია
    const set = new Set([1, 2, 2, 3, 4, 4]); // შეიცავს [1, 2, 3, 4]
    
  • Typed Arrays (ტიპიზირებული მასივები): განსაზღვრული სიგრძის მასივები, რომელთა ელემენტები აქვთ განსაზღვრული რიცხვითი ტიპი (მაგალითად, Int8Array, Uint8Array, Float32Array).
    // ბაიტების ტიპიზირებული მასივი
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (სუსტი რუკა): მსგავსია Map, მაგრამ მისი გასაღებები უნდა იყოს ობიექტები, და ისინი არ აფერხებენ გროვის მეხსიერების განთავისუფლებას.
    // სუსტი რუკა
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'მონაცემები 1');
    
  • WeakSet (სუსტი საგროვი): მსგავსია Set, მაგრამ მისი ელემენტები უნდა იყოს ობიექტები, და ისინი არ აფერხებენ გროვის მეხსიერების განთავისუფლებას.
    // სუსტი საგროვი
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

ასევე არსებობს სტრუქტურები, რომლებიც გამოიყენება დაბალ დონეზე API-ებში ან წარმოადგენს სპეციალურ ობიექტებს:

  • ArrayBuffer: წარმოადგენს უნივერსალურ, განსაზღვრული სიგრძის ბინარული ბუფერს.
  • DataView: უზრუნველყოფს დაბალ დონეზე ინტერფეისს ArrayBuffer-ში რიცხვითი მონაცემების წაკითხვასა და ჩაწერაში, საშუალებას აძლევს კონტროლს გადახრილობებისა და ბაიტების წესების.