Sobes.tech
Junior

Kāda ir atšķirība starp dažādiem datu tipiem?

sobes.tech AI

Atbilde no AI

JavaScript dati ir sadalīti galvenajos tipos un objekti.

Galvenie tipi:

  • String: Rakstzīmju secība. Nemainīga.
  • Number: Skaitļi, ieskaitot veselos un ar peldošo punktu, kā arī Infinity, -Infinity un NaN.
  • Boolean: Loģiska vērtība (true vai false).
  • Null: Īpaša vērtība, kas apzīmē objekta neesamību.
  • Undefined: Mainīgā vērtība, kurai nav piešķirta vērtība.
  • Symbol: Unikāls un nemainīgs galvenais tips, kas tiek izmantots objekta īpašību identifikatoriem.
  • BigInt: Neierobežota garuma veseli skaitļi.

Objekti:

  • Object: Atslēgu-vērtību pāru kolekcija. Maināms. Piemēri: masīvi, funkcijas, regulāras izteiksmes, datumi.

Galvenās atšķirības:

  1. Maināmība (Mutability): Galvenie tipi ir nemaināmi, t.i., to vērtību tieši mainīt nav iespējams. Mēģinot mainīt, tiek izveidots jauns kopums. Objekti ir maināmi, to īpašības var tikt pievienotas, dzēstas un mainītas.
  2. Pārsūtīšana pēc vērtības/saite: Galvenie tipi tiek pārsūtīti pēc vērtības (kopēta tiek pati vērtība). Objekti tiek pārsūtīti pēc saites (kopēta ir saite uz vietu atmiņā, kur glabājas objekts).
  3. Salīdzināšana: Galvenie tipi tiek salīdzināti pēc vērtības. Objekti tiek salīdzināti pēc saites (divas mainīgās norāda uz vienu un to pašu objektu atmiņā).
// Piemēri
let str1 = "hello";
let str2 = str1; // str2 saņem str1 vērtības kopiju
str1 = "world"; // Tiek izveidots jauns virkne "world" priekš str1
console.log(str2); // "hello" - str2 nemainījās

let obj1 = { name: "Alice" };
let obj2 = obj1; // obj2 saņem atsauci uz to pašu objektu, kas ir obj1
obj1.name = "Bob"; // Mainās objekta īpašība, uz kuru norāda abas mainīgās
console.log(obj2.name); // "Bob" - obj2 mainījās

let num1 = 10;
let num2 = 10;
console.log(num1 === num2); // true - vērtības ir vienādas

let objA = { value: 1 };
let objB = { value: 1 };
console.log(objA === objB); // false - saites tiek salīdzinātas (norāda uz dažādiem objektiem, lai gan saturs ir vienāds)

Atšķirību tabula:

Īpašība Galvenie tipi Objekti
Maināmība Nemaināmi Maināmi
Pārsūtīšana Pēc vērtības Pēc saites
Salīdzināšana Pēc vērtības Pēc saites
Glabāšana Tieši mainīgajā Saite uz vietu atmiņā
Datu tipi String, Number, Boolean, Null, Undefined, Symbol, BigInt Objekti (ieskaitot masīvus, funkcijas un citus)