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 |