Sobes.tech
Middle

Kodėl JavaScript galima prieiti prie pirminės eilutės kaip prie objekto?

sobes.tech AI

Atsakymas iš AI

JavaScript'e kai kreipiantis į pirminę eilutę string (ne String) įvyksta automatinis paverčiamas (box'inimas/įpakavimas) į String objektą. Tai laikinas objektas, kuris turi prieinamas eilutėms skirtas metodus ir savybes (pvz., .length, .toUpperCase(), .indexOf()). Po operacijos su šiuo laikinu objektu jis sunaikinamas.

Pavyzdys:

// pirminė eilutė
const myString = "hello";

// prieigos prie `.length` savybės
// automatiškai įpakavimas į `String { "hello" }` objektą
// tada kviečiamas šio laikino objekto `.length` savybė
console.log(myString.length); // 5

// prieigos prie `.toUpperCase()` metodo
// automatiškai įpakavimas į `String { "hello" }` objektą
// tada kviečiamas šio laikino objekto `.toUpperCase()` metodas
console.log(myString.toUpperCase()); // "HELLO"

// Po operacijos laikinasis objektas sunaikinamas.
// myString lieka pirminė eilutė.
console.log(typeof myString); // "string"

Šis elgesys užtikrina patogų darbą su pirminiais tipais, leidžiant naudoti objektinio programavimo sintaksę jų funkcionalumui pasiekti, nereikalaujant aiškaus objektų kūrimo.

Pirminės eilutės ir String objekto palyginimas:

Savybė Pirminė eilutė ("string") String objektas (new String("string"))
Tipas string object
Lyginant operatoriumi === Vertės lyginimas Nuorodos lyginimas
Bendra Didesnis našumas Mažesnis našumas
Naudojimas Dažniausiai rekomenduojama Vengti, jei nėra aiškiai reikalinga