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"; // str1 үчүн жаңы сап түзүлөт
console.log(str2); // "hello" - str2 өзгөргөн жок
let obj1 = { name: "Alice" };
let obj2 = obj1; // obj2 ошол эле объектке шилтеме кылат
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 - шилтемелер салыштырылат (алар башка объекттерге шилтеме кылат, бирок мазмуну бирдей)
Айырмачылык таблицасы:
| Өзгөрмө | Негизги түрлөр | Объекттер |
|---|---|---|
| Өзгөрүлмөлүүлүк | Өзгөрбөс (immutable) | Өзгөрүлүүчү (mutable) |
| Өткөрүү | мааниси боюнча | шилтеме аркылуу |
| Салыштыруу | мааниси боюнча | шилтеме аркылуу |
| Сактоо | түздөн-түз өзгөрмөдө | эс тутумдагы шилтеме |
| Маалымат түрлөрү | String, Number, Boolean, Null, Undefined, Symbol, BigInt | Объекттер (массивдер, функциялар жана башка) |