- 1 1. Introduzione
- 2 2. Informazioni di Base e Uso di Ogni Metodo
- 3 3. Tabella Comparativa di Ogni Metodo
- 4 4. Esempi di Codice Pratici
- 5 5. Come Gestire i Metodi Deprecati
- 6 6. Domande frequenti (FAQ)
- 6.1 Q1: Posso ancora usare substr?
- 6.2 Q2: Qual è la differenza tra slice e substring?
- 6.3 Q3: Quali sono i rischi di continuare a usare metodi deprecati?
- 6.4 Q4: Qual è il metodo migliore per stringhe lunghe?
- 6.5 Q5: Come posso contare all’indietro usando valori negativi?
- 6.6 Q6: Ci sono differenze di prestazioni?
- 7 7. Riepilogo e Best Practice Consigliate
- 8 8. Link correlati e riferimenti
1. Introduzione
JavaScript è un linguaggio di programmazione essenziale nello sviluppo web. In particolare, la manipolazione delle stringhe è frequentemente utilizzata per formattare dati, analisi e aggiornare dinamicamente l’interfaccia utente.
In questo articolo spiegheremo in dettaglio tre metodi JavaScript per le stringhe comunemente usati—substr, substring e slice. Poiché questi metodi forniscono funzionalità simili, comprenderne le differenze ti aiuterà a scegliere quello più adatto a ciascuna situazione.
Discuteremo anche perché substr è stato deprecato e forniremo approcci alternativi, offrendo consigli pratici per scrivere JavaScript secondo le migliori pratiche moderne.
2. Informazioni di Base e Uso di Ogni Metodo
Questa sezione spiega la sintassi di base e l’uso di substr, substring e slice. Comprendere questi metodi ti aiuterà a scegliere quello appropriato e a migliorare la leggibilità e la manutenibilità del codice.
2.1 Metodo substr
Sintassi:
string.substr(start, length)
Descrizione:
start: Specifica l’indice di partenza per l’estrazione (basato su 0).length: Specifica il numero di caratteri da estrarre. Se omesso, l’estrazione continua fino alla fine della stringa.
Esempio d’uso:
let str = "JavaScript";
console.log(str.substr(0, 4)); // Output: "Java"
console.log(str.substr(4, 6)); // Output: "Script"
Nota:
Il metodo substr è deprecato, ed è consigliato evitarlo nel codice futuro. Usa slice o substring al suo posto.
Esempio Alternativo (usando slice):
let str = "JavaScript";
console.log(str.slice(0, 4)); // Output: "Java"
console.log(str.slice(4)); // Output: "Script"
2.2 Metodo substring
Sintassi:
string.substring(start, end)
Descrizione:
start: Indice di inizio dell’estrazione.end: Indice di fine (il carattere a questo indice non è incluso).
Esempio d’uso:
let str = "JavaScript";
console.log(str.substring(0, 4)); // Output: "Java"
console.log(str.substring(4, 10)); // Output: "Script"
Punti:
- L’ordine degli argomenti viene corretto automaticamente: Se chiami
substring(10, 4), verrà trattato comesubstring(4, 10). - I valori negativi sono ignorati: Qualsiasi argomento negativo viene trattato come 0.
Esempio alternativo quando sono necessari valori negativi (usando slice):
let str = "JavaScript";
console.log(str.slice(-6)); // Output: "Script"
2.3 Metodo slice
Sintassi:
string.slice(start, end)
Descrizione:
start: Indice di inizio dell’estrazione.end: Indice di fine (il carattere a questo indice non è incluso).
Esempio d’uso:
let str = "JavaScript";
console.log(str.slice(0, 4)); // Output: "Java"
console.log(str.slice(-6)); // Output: "Script"
Punti:
- Supporta valori negativi: Gli indici negativi contano dalla fine della stringa.
- Funziona sia per stringhe che per array: Può anche estrarre elementi da array, rendendolo molto versatile.

3. Tabella Comparativa di Ogni Metodo
| Method | Start Position | End Position | Negative Values | Recommendation Level |
|---|---|---|---|---|
substr | Required | Length-based | × | Deprecated |
substring | Required | Required | × | High |
slice | Required | Required | ○ | Highly Recommended |
Scegliere il Metodo Giusto in Base al Caso d’Uso:
- Estrazione di segmenti brevi: →
slice - Quando sono necessari valori negativi: →
slice - Compatibilità con codice legacy: → Evita
substr; migra se necessario
4. Esempi di Codice Pratici
Manipolazione di Stringhe di Base
let text = "JavaScriptProgramming";
// Extract the first 10 characters
console.log(text.slice(0, 10)); // "JavaScript"
// Extract the last 3 characters
console.log(text.slice(-3)); // "ing"
Estrazione di Valori Basata su un Pattern
let url = "https://example.com/index.html";
// Get the file name
console.log(url.slice(url.lastIndexOf("/") + 1)); // "index.html"
5. Come Gestire i Metodi Deprecati
Il metodo substr di JavaScript è deprecato. Questo perché substr è stato classificato come metodo non consigliato nelle ultime specifiche ECMAScript.
Questa sezione spiega i problemi legati a substr, i metodi alternativi e come migrare il tuo codice.
5.1 Perché substr è deprecato?
- Scarsa leggibilità:
substrutilizza il secondo argomento come “numero di caratteri da estrarre,”
che differisce da altri metodi che usano un indice finale.
Questa incoerenza rende il codice più difficile da comprendere.
- Potenziali problemi di compatibilità futura a causa di cambiamenti nelle specifiche:
- Le funzionalità più vecchie vengono deprecate durante la standardizzazione di ECMAScript.
Il nuovo codice non dovrebbe dipendere da esse.
- Nessun supporto per valori negativi:
substrnon supporta indici negativi, mentreslicelo fa.
5.2 Come migrare verso metodi moderni
Caso 1: Estrarre una sottostringa di lunghezza fissa
// Deprecated code
let str = "JavaScript";
console.log(str.substr(0, 4)); // "Java"
// Recommended (slice)
console.log(str.slice(0, 4)); // "Java"
Caso 2: Estrarre la fine di una stringa
// Deprecated code
console.log(str.substr(-6)); // Error (negative not supported)
// Recommended (slice)
console.log(str.slice(-6)); // "Script"
Caso 3: Estrarre una parte di un URL o di un nome file
let url = "https://example.com/index.html";
// Deprecated code
let filename = url.substr(url.lastIndexOf("/") + 1);
console.log(filename); // "index.html"
// Recommended (slice)
let filenameNew = url.slice(url.lastIndexOf("/") + 1);
console.log(filenameNew); // "index.html"
5.3 Punti di refactoring per codice legacy
- Eseguire una scansione del codice:
- Usa strumenti come ESLint per rilevare dove viene usato
substr.
- Rafforzare la copertura dei test:
- Usa test unitari per garantire che il comportamento rimanga corretto dopo la sostituzione dei metodi.
- Migrare gradualmente:
- Prioritizza la sostituzione nelle sezioni importanti o frequentemente eseguite.
5.4 Vantaggi della migrazione da substr
- Migliorata leggibilità e manutenibilità:
- L’intento del codice diventa più chiaro, migliorando la comprensione del team.
- Compatibilità con gli standard moderni:
- Seguire gli standard ECMAScript garantisce stabilità a lungo termine.
- Supporto flessibile per valori negativi:
sliceconsente un’estrazione concisa sia dalle posizioni iniziali che finali.

6. Domande frequenti (FAQ)
Questa sezione riassume le domande comuni e le risposte sui metodi di manipolazione delle stringhe in JavaScript.
Q1: Posso ancora usare substr?
A:
Sì, la maggior parte dei browser moderni supporta ancora substr.
Tuttavia, poiché ECMAScript lo segna come deprecato, dovrebbe essere evitato nei nuovi progetti o nei codebase che richiedono compatibilità futura.
Alternativa consigliata:
let str = "JavaScript";
console.log(str.slice(0, 4)); // "Java"
Q2: Qual è la differenza tra slice e substring?
A:
La tabella seguente riassume le loro differenze:
| Feature | slice | substring |
|---|---|---|
| End index behavior | End index is excluded | End index is excluded |
| Negative values | Supported | Treated as 0 |
| Flexibility | High | Moderate |
| Recommendation | Highly recommended | Recommended |
Esempi:
let str = "JavaScript";
// slice examples
console.log(str.slice(0, 4)); // "Java"
console.log(str.slice(-6)); // "Script"
// substring examples
console.log(str.substring(0, 4)); // "Java"
console.log(str.substring(4, 10)); // "Script"
Q3: Quali sono i rischi di continuare a usare metodi deprecati?
A:
- Possibile rimozione del supporto nei browser:
substrpotrebbe eventualmente non essere più supportato. - Aumento dei costi di manutenzione: Il debug di funzionalità deprecate richiede tempo aggiuntivo.
- Qualità del codice inferiore: Non seguire gli standard moderni riduce la leggibilità.
Q4: Qual è il metodo migliore per stringhe lunghe?
A: slice è il migliore perché supporta indici negativi e offre grande flessibilità.
Esempio:
let longText = "This is a very long text string used for testing purposes.";
// First 10 characters
console.log(longText.slice(0, 10)); // "This is a "
// Last 10 characters
console.log(longText.slice(-10)); // "purposes."
Q5: Come posso contare all’indietro usando valori negativi?
A: Usa slice, poiché substring tratta i valori negativi come 0.
Esempio:
let str = "JavaScript";
// slice supports negative values
console.log(str.slice(-6)); // "Script"
// substring treats negative as 0
console.log(str.substring(-6)); // "JavaScript"
Q6: Ci sono differenze di prestazioni?
R: I browser moderni non mostrano differenze di prestazioni significative tra slice, substring o substr.
Poiché tutte sono funzioni native, dai priorità alla leggibilità e alla manutenibilità rispetto a micro‑ottimizzazioni.
7. Riepilogo e Best Practice Consigliate
In questo articolo abbiamo esplorato i metodi JavaScript per le stringhe substr, substring e slice, coprendo la loro sintassi di base, le differenze, esempi pratici di codice e le strategie di migrazione per i metodi deprecati.
Questa sezione riorganizza le caratteristiche chiave di ciascun metodo e presenta le best practice moderne consigliate.
7.1 Riepilogo di ciascun metodo
| Method Name | Main Characteristics | Recommendation Level |
|---|---|---|
substr | Specifies start index and length; does not support negative values. Deprecated. | Not Recommended |
substring | Specifies start and end indices; negative values become 0. Suitable for simple use cases. | Recommended |
slice | Specifies start and end indices; supports negative values. Very flexible and versatile. | Highly Recommended |
7.2 Criteri pratici di selezione
- Usa
substringper estrazioni di intervalli semplici:
- Ideale quando non sono necessari valori negativi. Esempio:
let str = "JavaScript"; console.log(str.substring(0, 4)); // Output: "Java"
- Usa
sliceper la massima flessibilità:
- Supporta indici negativi ed è il metodo consigliato per nuovo codice. Esempio:
let str = "JavaScript"; console.log(str.slice(-6)); // Output: "Script"
- Sostituisci
substril prima possibile:
- Migra a
sliceosubstringquando mantieni codice legacy.
7.3 Best practice moderne
- Scrivi codice con la leggibilità in mente:
- Un codice chiaro e conciso migliora la manutenibilità a lungo termine.
- Evita i metodi deprecati:
substrpotrebbe perdere il supporto nei browser futuri—migra in anticipo.
- Usa
slicequando lavori con valori negativi:
sliceè l’unico metodo che gestisce correttamente gli indici negativi.
- Utilizza ESLint e suite di test per mantenere la qualità del codice:
- L’analisi statica aiuta a rilevare metodi deprecati e a imporre stili di codifica moderni.
7.4 Esempio di uno stile di codifica moderno
// Example: Extract domain from an email address
let email = "user@example.com";
let domain = email.slice(email.indexOf("@") + 1);
console.log(domain); // Output: "example.com"
// Example: Get file extension from a URL
let url = "document.pdf";
let extension = url.slice(-3);
console.log(extension); // Output: "pdf"
7.5 Piano d’azione per i lettori
- Rivedi il tuo codice esistente:
- Verifica se
substrè usato nel tuo progetto e sostituiscilo dove necessario.
- Segui le best practice nel nuovo codice:
- Usa pattern moderni e flessibili ed evita le funzionalità deprecate.
- Sfrutta commenti e domande della community:
- Condividi domande o casi d’uso per aiutare gli altri a imparare, rafforzando al contempo la tua comprensione.
Conclusione
Questo articolo ha fornito una spiegazione approfondita dei metodi JavaScript substr, substring e slice, includendo sintassi, esempi, tabelle comparative e strategie di migrazione.
- Evita
substrperché è deprecato. - Usa
substringper scenari semplici. - Usa
sliceper la massima flessibilità e le best practice moderne.
Utilizza queste indicazioni per scrivere codice JavaScript efficiente e manutenibile.

8. Link correlati e riferimenti
Per approfondire la tua comprensione di substr, substring e slice, ecco alcuni link e riferimenti utili. Documentazione ufficiale e risorse di apprendimento ti aiuteranno a rimanere aggiornato sulle ultime novità e tecniche JavaScript.
8.1 Documentazione ufficiale
- MDN Web Docs – JavaScript String Object
- Link: String – MDN Web Docs
- Panoramica: Una referenza completa per l’oggetto
Stringdi JavaScript con specifiche dettagliate ed esempi.
- Specifiche ECMAScript (ECMA‑262)
- Link: Specificazione ufficiale ECMAScript
- Panoramica: La specifica ufficiale del linguaggio che copre le ultime funzionalità ECMAScript, i metodi deprecati e i dettagli tecnici.
8.2 Siti di apprendimento e tutorial
- JavaScript.info – Guida alla manipolazione delle stringhe
- Link: JavaScript.info
- Panoramica: Una guida completa che copre sia le operazioni di stringa di base che quelle avanzate, con esempi pratici.
- Progate – Corso JavaScript da principiante a intermedio
- Link: Progate
- Panoramica: Una piattaforma interattiva ideale per i principianti che apprendono attraverso esercizi di codifica pratici.
- DotInstall – Lezioni introduttive di JavaScript
- Link: DotInstall
- Panoramica: Brevi lezioni video che rendono facile apprendere JavaScript in modo visivo e rapido.
8.3 Risorse pratiche di codice di esempio
- GitHub – Progetti di esempio JavaScript
- Link: GitHub
- Panoramica: Impara le migliori pratiche e i pattern del mondo reale esplorando progetti open source.
- CodePen – Condivisione interattiva di codice
- Link: CodePen
- Panoramica: Condividi e testa il tuo codice con altri sviluppatori o sfoglia esempi per ispirazione.
8.4 Libri consigliati
- Panoramica: Un riferimento completo e autorevole che copre JavaScript dalle basi alle funzionalità avanzate.
- Panoramica: Un riferimento pratico incentrato su JavaScript moderno e sugli standard di codifica aggiornati.
8.5 Comunità e forum
- Stack Overflow (giapponese)
- Link: Stack Overflow
- Panoramica: Una community di domande e risposte dove puoi risolvere problemi JavaScript in modo efficiente.
- Qiita
- Link: Qiita
- Panoramica: Una piattaforma giapponese ricca di articoli pratici e case study su JavaScript.
- Teratail
- Link: Teratail
- Panoramica: Un sito Q&A giapponese ideale per porre domande tecniche nella lingua madre.
Conclusione
Questa sezione ha introdotto una vasta gamma di risorse—dalle referenze ufficiali ai tutorial, ai repository di codice di esempio e alle piattaforme comunitarie—per supportare l’apprendimento continuo delle operazioni sulle stringhe in JavaScript.
Punti chiave:
- Controlla regolarmente la documentazione ufficiale:
- Assicurati che il tuo stile di codifica rimanga allineato agli ultimi standard.
- Rafforza le competenze attraverso la programmazione pratica:
- La pratica rende i concetti più chiari e migliora l’applicazione nel mondo reale.
- Interagisci con la community:
- Condividere domande e soluzioni aiuta ad approfondire la comprensione e ad ampliare la tua rete.



