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.