Stringhe come Array in JavaScript
- In JavaScript, le stringhe si comportano come array di caratteri, consentendo l'accesso agli elementi tramite l'indicizzazione.
- Possiamo accedere ai singoli caratteri di una stringa utilizzando le parentesi quadre, ad esempio
s[0]per il primo carattere. - Le stringhe sono valori immutabili, quindi non possiamo modificare i loro caratteri direttamente.
- Possiamo utilizzare metodi degli array su stringhe, come
join(), per creare rappresentazioni testuali delle stringhe. - Le stringhe non hanno accesso ai metodi di modifica degli array come
push()osplice(), poiché sono di sola lettura.
Stringhe come Array
Le stringhe JavaScript si comportano come array di sola lettura di caratteri Unicode UTF-16. Invece di accedere ai singoli caratteri con il metodo charAt(), possiamo usare le parentesi quadre:
let s = "ciao";
s.charAt(0) // => "c"
s[1] // => "i"
L'operatore typeof restituisce ancora "string" per le stringhe, naturalmente, e il metodo Array.isArray() restituisce false se gli viene passata una stringa.
Il vantaggio principale delle stringhe indicizzabili è semplicemente che possiamo sostituire le chiamate a charAt() con parentesi quadre, che sono più concise e leggibili, e potenzialmente più efficienti. Il fatto che le stringhe si comportino
come array significa anche, tuttavia, che possiamo applicare metodi array generici ad esse.
Per esempio:
Array.prototype.join.call("Ciao", " ") // => "C i a o"
Si tenga presente che le stringhe sono valori immutabili, quindi quando vengono trattate come array, sono array di sola lettura. I metodi array come push(), sort(), reverse(), e splice() modificano un array in loco e non funzionano sulle stringhe. Tentare di modificare una stringa usando un metodo array non causa, tuttavia, un errore: semplicemente fallisce silenziosamente.