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 |