Junior
რა არის მონაცემთა სხვადასხვა ტიპებს შორის განსხვავება?
sobes.tech AI
პასუხი AI-სგან
JavaScript-ში მონაცემები ძირითად ტიპებსა და ობიექტებს იყოფა.
ძირითადი ტიპები:
- String: სიმბოლოების სერია. შეუცვლელი.
- Number: რიცხვები, მათ შორის მთელი და ხარვეზიანი, ასევე
Infinity,-InfinityდაNaN. - Boolean: ლოგიკური მნიშვნელობა (
trueანfalse). - Null: სპეციალური მნიშვნელობა, რომელიც წარმოადგენს ობიექტის არარსებობას.
- Undefined: ცვლადის მნიშვნელობა, რომელსაც მნიშვნელობა არ აქვს მინიჭებული.
- Symbol: უნიკალური და შეუცვლელი ძირითადი ტიპი, რომელიც გამოიყენება ობიექტის თვისებების იდენტიფიკატორად.
- BigInt: შეუზღუდავი სიგრძის მთელი რიცხვები.
ობიექტები:
- Object: გასაღები-მნიშვნელობის წყვილების კოლექცია. შეცვლადი. მაგალითები: მასივები, ფუნქციები, რეგულარული გამოთქმები, თარიღები.
ძირითადი განსხვავებები:
- შეცვლადობა (Mutability): ძირითადი ტიპები შეუცვლელია, ანუ მათი მნიშვნელობა პირდაპირ ვერ შეიცვლება. შეცვლის მცდელობისას ქმნება ახალი კოპია. ობიექტები შეცვლადია, მათი თვისებები შეიძლება დაემატოს, წაიშალოს და შეიცვალოს.
- გადაცემა მნიშვნელობით/ლინკით: ძირითადი ტიპები გადაეცემა მნიშვნელობით (კოპირებულია თავად მნიშვნელობა). ობიექტები გადაეცემა ლინკით (კოპირებულია ლინკი მეხსიერების ადგილას, სადაც ობიექტი ინახება).
- შედარება: ძირითადი ტიპები შედარებულია მნიშვნელობით. ობიექტები შედარებულია ლინკით (ორი ცვლადი მიუთითებს ერთსა და იმავე ობიექტზე მეხსიერებაში).
// მაგალითები
let str1 = "hello";
let str2 = str1; // str2 იღებს str1-ის მნიშვნელობის კოპიას
str1 = "world"; // ახალი სტრიქონი "world" შეიქმნება str1-ისთვის
console.log(str2); // "hello" - str2 არ შეიცვალა
let obj1 = { name: "Alice" };
let obj2 = obj1; // obj2 იღებს მითითებას იმავე ობიექტზე, როგორც obj1
obj1.name = "Bob"; // ობიექტის თვისება იცვლება, რადგან ორივე მითითება ერთსა და იმავე ობიექტზე მიუთითებს
console.log(obj2.name); // "Bob" - obj2 შეიცვალა
let num1 = 10;
let num2 = 10;
console.log(num1 === num2); // true - მნიშვნელობები თანხვედრილია
let objA = { value: 1 };
let objB = { value: 1 };
console.log(objA === objB); // false - ლინკები შედარებულია (მათ მიუთითებენ სხვადასხვა ობიექტზე, მიუხედავად იმისა, რომ შიგთავსი ერთნაირია)
შედარების ცხრილი:
| მახასიათებელი | ძირითადი ტიპები | ობიექტები |
|---|---|---|
| შეცვლადობა | შეუცვლელი | შეცვლადი |
| გადაცემა | მნიშვნელობით | ლინკით |
| შედარება | მნიშვნელობით | ლინკით |
| შენახვა | პირდაპირ ცვლადში | ლინკი მეხსიერების ადგილას |
| მონაცემთა ტიპები | String, Number, Boolean, Null, Undefined, Symbol, BigInt | ობიექტები (მათ შორის მასივები, ფუნქციები და სხვა) |