Sobes.tech
Middle

Miks on JavaScriptis võimalik primitiivset stringi käsitleda nagu objekti?

sobes.tech AI

Vastus AI-lt

JavaScriptis, kui pöörduda primaarse stringi string (mitte String) poole, toimub automaatne ümberkujundamine (boximine/pakendamine) String objekti. See ajutine objekt sisaldab meetodeid ja omadusi, mis on saadaval stringidele (näiteks .length, .toUpperCase(), .indexOf()). Pärast selle ajutise objekti operatsiooni lõppu see hävib.

Näide:

// primaarne string
const myString = "hello";

// `.length` omaduse kasutamine
// automaatselt pakendatakse `String { "hello" }` objekti
// seejärel kutsutakse välja selle ajutise objekti `.length` omadus
console.log(myString.length); // 5

// `.toUpperCase()` meetodi kasutamine
// automaatselt pakendatakse `String { "hello" }` objekti
// seejärel kutsutakse välja selle ajutise objekti `.toUpperCase()` meetod
console.log(myString.toUpperCase()); // "HELLO"

// Pärast operatsiooni see ajutine objekt hävib.
// myString jääb primaarseks stringiks.
console.log(typeof myString); // "string"

See käitumine tagab mugava töö primaarsete tüüpidega, võimaldades kasutada objekt-orienteeritud süntaksit nende funktsionaalsuse kasutamiseks, ilma et oleks vaja selgelt objekti luua.

Primaarne string ja String objekti võrdlus:

Omadus Primaarne string ("string") String objekt (new String("string"))
Tüüp string object
Võrdlus === operaatoriga Väärtuse põhjal Viite põhjal
Üldine Suurem jõudlus Vähem jõudlust
Kasutamine Enamasti soovitatav Vältida, kui pole selgelt vajalik