Sobes.tech
Middle

Kāpēc JavaScript ir iespējams piekļūt primitivajam virknes tipam kā pie objekta?

sobes.tech AI

Atbilde no AI

JavaScript, pie pieejas pie primārās virknes string (ne String) notiek automātiska pārvēršana (boksēšana/iepakošana) uz String objektu. Šis ir pagaidu objekts, kas satur pieejamus virknes metodes un īpašības (piemēram, .length, .toUpperCase(), .indexOf()). Pēc darbības ar šo pagaidu objektu tas tiek iznīcināts.

Piemērs:

// primārā virkne
const myString = "hello";

// piekļuve `.length` īpašībai
// automātiska iepakošana `String { "hello" }` objektā
// tad tiek izsaukta šī pagaidu objekta `.length` īpašība
console.log(myString.length); // 5

// piekļuve `.toUpperCase()` metodei
// automātiska iepakošana `String { "hello" }` objektā
// tad tiek izsaukta šī pagaidu objekta `.toUpperCase()` metode
console.log(myString.toUpperCase()); // "HELLO"

// Darbības beigās pagaidu objekts tiek iznīcināts.
// myString paliek primārā virkne.
console.log(typeof myString); // "string"

Šāda uzvedība nodrošina ērtu darbu ar primārajiem tipiem, ļaujot izmantot objektorientētu sintaksi to funkcionalitātes piekļuvei, neprasot skaidru objektu izveidi.

Salīdzinājums starp primāro virkni un String objektu:

Īpašība Primārā virkne ("string") String objekts (new String("string"))
Tips string object
Salīdzināšana ar === Saskaņā ar vērtību Saskaņā ar atsauci
Kopējais Augstāka veiktspēja Zemāka veiktspēja
Lietošana Biežāk ieteicama Vairāk jāizvairās, ja nav nepieciešama