English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Una stringa è una sequenza di uno o più caratteri, costituiti da lettere, numeri o simboli.
Le stringhe in JavaScript sono un tipo di dati primitivo e immutabile, il che significa che non sono modificate.
Le stringhe JavaScript sono composte da zero o più caratteri racchiusi tra virgolette.
var x = "JavaScript tutorial ";Prova a vedere < / >
In JavaScript, puoi scegliereVirgola singolaoVirgolette doppieper racchiudere una stringa. Entrambi i metodi funzionano correttamente:
var msg1 = "Hello world"; // uso di virgolette doppi var msg2 = 'Hello world'; // uso di virgolette singoleProva a vedere < / >
Puoi usare virgolette all'interno di una stringa, purché non corrispondano a quelle della stringa esterna:
var str1 = 'Ella disse "Hey" e se ne andò'; // singoli apici con virgolette all'interno var str2 = "She said 'Hey' and left"; // Virgola singola all'interno delle virgolette var str3 = "Let's have a cup of tea"; // Virgola singola all'interno delle virgolette var str4 = 'We\'ll never give up'; // Usare il backslash per escaping la virgola singolaProva a vedere < / >
Il metodo più recente per creare una stringa si chiamaTemplate costanti(template literal).
I template literals utilizzano i backslash (` `) e funzionano allo stesso modo delle stringhe normali:
var x = `Questo stringa utilizza i backslash.`;Prova a vedere < / >
lengthL'attributo restituisce la lunghezza della stringa. Per una stringa vuota, la lunghezza è 0.
var str = 'JavaScript tutorial '; str.length;// return 15Prova a vedere < / >
Attenzione:Lo spazio è considerato un carattere.
Concatenazione significa unire due o più stringhe per creare una nuova stringa.
+ Operatore utilizzato per aggiungere (unire) stringhe.
var str1 = "quick brown fox"; var str2 = "over the lazy dog"; var str3 = "The " + str1 + " jumps " + str2;Prova a vedere < / >
template literalUna funzionalità speciale del linguaggio è la capacità di includere espressioni e variabili nelle stringhe. Senza dover utilizzare concatenazione, possiamo inserire le variabili utilizzando la sintassi ${}.
var str1 = "quick brown fox"; var str2 = "over the lazy dog"; var str3 = `The ${str1} jumps ${str2}.`;Prova a vedere < / >
In questo caso, l'uso dei template literals potrebbe essere più facile e conveniente per la scrittura.
Poiché le stringhe devono essere racchiuse tra virgolette, il seguente contenuto genererà un errore perché confonderà il terminatore della stringa nel browser:
var x = 'We'll never give up'; var y = "She said 'Hey' and left";
La sequenza di escape significa che le operiamo per assicurarci che vengano riconosciute come testo e non come parte del codice.
In JavaScript, raggiungiamo questo obiettivo aggiungendo un backslash () davanti al carattere.
Codice | Risultato | Descrizione |
---|---|---|
\' | ' | Virgola singola |
\" | ” | Virgolette doppie |
\\\ | \ | Barra inversa |
Questa sequenza' inserisce una virgola singola nella stringa:
var x = 'We\'ll never give up';Prova a vedere < / >
Questa sequenza " inserisce virgolette doppie nella stringa:
var x = "Ha detto \\Prova a vedere < / >
La sequenza \\ inserisce l'antirovesciata nella stringa:
var x = "Il carattere \\ è chiamato backslash";Prova a vedere < / >
In JavaScript ci sono altre sei sequenze di escape valide:
Codice | Descrizione |
---|---|
\b | Tasto di retrocessione |
\f | Pagine |
\n | Nuova riga |
\r | Carattere di ritorno della riga |
\t | Tab orizzontale |
\v | Tab verticale |
Le sequenze di escape sono anche utili per i caratteri che non possono essere inseriti utilizzando i tasti della tastiera.
Per ottenere una migliore leggibilità, è meglio evitare che le righe di codice superino i 80 caratteri.
Se una riga di JavaScript non si adatta a una riga, il miglior punto per romperla è dopo l'operatore:
document.getElementById("para").innerHTML = "La somma di 20 e 30 è " + somma;Prova a vedere < / >
Scrivere una stringa molto lunga su una riga diventa presto difficile da leggere e utilizzare.
Possiamo utilizzare l'operatore di concatenazione (+) per visualizzare stringhe su più righe.
var str = "Inquinamento atmosferico è la sostanza che entra in " + "Atmosfera. Provoca un disequilibrio ambientale e porta a " + "Diversi disturbi.";Prova a vedere < / >
Oltre all'uso di più stringhe, possiamo anche utilizzare il simbolo di escape \.
var str = "Inquinamento atmosferico è la sostanza che entra in \ Atmosfera. Provoca un disequilibrio ambientale e porta a \ Diversi disturbi.";Prova a vedere < / >
Attenzione:Il metodo (\) non è preferito, poiché può causare problemi in alcuni browser e minifiers.
Per rendere il codice più leggibile, possiamo utilizzareTemplate costanti(template literal)Stringhe. Queste eliminano la necessità di concatenare stringhe lunghe o di escapare.
var str = `Inquinamento atmosferico è la sostanza che entra in Atmosfera. Provoca un disequilibrio ambientale e porta a Diversi disturbi.`;Prova a vedere < / >
È importante sapere tutti i metodi per creare stringhe multirighe, poiché diversi repository di codice possono utilizzare standard diversi.
Di solito, le stringhe JavaScript sono valori originali creati da testi:
var city = "New Delhi";
Ma, si può anche definire una stringa come oggetto utilizzando la parola chiave new:
var city = new String("New Delhi");
Per testare la differenza tra i due, inizieremo con un'istanza di stringa primitiva e un'istanza di stringa oggetto.
var str1 = "New Delhi"; var str2 = new String("New Delhi"); typeof str1 // restituisce stringa typeof str2 // restituisce oggettoProva a vedere < / >
Attenzione:Non creare stringhe come oggetti. Questo ridurrà la velocità di esecuzione e produrrà alcuni risultati imprevisti.
Quando si utilizza l'operatore ==, le stringhe uguali sono le stesse:
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 == str2); // Restituisce true perché str1 e str2 hanno lo stesso valoreProva a vedere < / >
Quando si utilizza l'operatore ===, le stringhe uguali non sono le stesse perché l'operatore === si aspetta valore e tipo uguali:
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 === str2); // Restituisce false perché str1 e str2 sono di tipo diversoProva a vedere < / >
Impossibile confrontare gli oggetti:
var str1 = new String("New Delhi"); var str2 = new String("New Delhi"); document.write(str1 == str2); // Poiché str1 e str2 sono oggetti diversi, viene restituito false document.write(str1 === str2); // Poiché str1 e str2 sono oggetti diversi, viene restituito falseProva a vedere < / >
Attenzione alla differenza tra (==) e (===). La comparazione di due oggetti JavaScript sempre restituirà false.