Sobes.tech
Junior

Фарқияти байни намудҳои гуногуни маълумот чист?

sobes.tech AI

Ҷавоб аз AI

Дар JavaScript маълумотҳо ба намудҳои ибтидоӣ ва объектҳо тақсим мешаванд.

Намудҳои ибтидоӣ:

  • String: Силсила аз рамзҳо. Нестоянда.
  • Number: Сандҳо, аз ҷумла сандҳои комил ва бо нуқтаи парвоз, инчунин Infinity, -Infinity ва NaN.
  • Boolean: Қимати мантиқӣ (true ё false).
  • Null: Қимати махсус, ки намоиши набудани объектро дорад.
  • Undefined: Қимати тағйирёбанда, ки ба он қимат дода нашудааст.
  • Symbol: Намуди беназири ва нестояндаи ибтидоӣ, ки барои муайян кардани хусусиятҳои объект истифода мешавад.
  • BigInt: Сандҳои пурра бо дарозии номаҳдуд.

Объектҳо:

  • Object: Коллексияи ҷуфтҳои калид-қимат. Мутобиқшаванда. Мисолҳо: массивҳо, функсияҳо, изразҳои муқарраршуда, таърихҳо.

Фарқиятҳои асосӣ:

  1. Мутобиқшаванда (Mutability): Намудҳои ибтидоӣ тағйирнопазиранд, яъне қимати онҳоро мустақиман тағйир додан мумкин нест. Ҳангоми кӯшиши тағйир додан нусхаи нав сохта мешавад. Объектҳо тағйирёбандаанд, хусусиятҳои онҳоро илова кардан, тоза кардан ва тағйир додан мумкин аст.
  2. Пасандозӣ ба қимат/пайванд: Намудҳои ибтидоӣ ба қимат дода мешаванд (қимати худро нусхабардорӣ мекунанд). Объектҳо ба пайванд дода мешаванд (пайванд ба ҷойи дар ёддошт, ки объект дар он ҷойгир аст, нусхабардорӣ мешавад).
  3. Мувофиқат: Намудҳои ибтидоӣ ба қимат муқоиса мешаванд. Объектҳо ба пайванд муқоиса мешаванд (ду тағйирёбанда ба як объект дар ёддошт ишора мекунанд).
// Мисолҳо
let str1 = "hello";
let str2 = str1; // str2 нусхаи қимати str1 мегирад
str1 = "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 Объект (аз ҷумла массивҳо, функсияҳо ва ғайра)