Stringhe come Array in JavaScript

Concetti Chiave
  • 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() o splice(), 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.