ES6 - Nuovi metodi di stringa
Di seguito è riportato un elenco di metodi con la loro descrizione.
Suor n | Metodo e descrizione |
---|---|
1 | String.prototype.startsWith (searchString, position = 0) Restituisce true se il ricevitore inizia con searchString; la posizione consente di specificare dove inizia la stringa da controllare. |
2 | String.prototype.endsWith (searchString, endPosition = searchString.length) Restituisce true se il ricevitore inizia con searchString; la posizione consente di specificare dove inizia la stringa da controllare. |
3 | String.prototype.includes (searchString, position = 0) Restituisce true se il ricevitore contiene searchString; posizione consente di specificare dove inizia la stringa da cercare. |
4 | String.prototype.repeat (count) Restituisce il ricevitore, conteggi concatenati. |
Letterali modello
Template literals sono letterali stringa che consentono espressioni incorporate. Templatestringsusa back-tick (``) invece delle virgolette singole o doppie. Una stringa modello potrebbe quindi essere scritta come -
var greeting = `Hello World!`;
Interpolazione di stringhe e valori letterali del modello
Le stringhe di modello possono utilizzare segnaposto per la sostituzione di stringhe utilizzando la sintassi $ {}, come dimostrato.
Example 1
var name = "Brendan";
console.log('Hello, ${name}!');
Il seguente output viene visualizzato in caso di corretta esecuzione del codice precedente.
Hello, Brendan!
Example 2: Template literals and expressions
var a = 10;
var b = 10;
console.log(`The sum of ${a} and ${b} is ${a+b} `);
Il seguente output viene visualizzato in caso di corretta esecuzione del codice precedente.
The sum of 10 and 10 is 20
Example 3: Template literals and function expression
function fn() { return "Hello World"; }
console.log(`Message: ${fn()} !!`);
Il seguente output viene visualizzato in caso di corretta esecuzione del codice precedente.
Message: Hello World !!
Stringhe multilinea e letterali modello
Le stringhe del modello possono contenere più righe.
Example
var multiLine = `
This is
a string
with multiple
lines`;
console.log(multiLine)
Il seguente output viene visualizzato in caso di corretta esecuzione del codice precedente.
This is
a string
with multiple
line
String.raw ()
ES6 include la funzione tag String.raw per le stringhe grezze, dove i backslash non hanno alcun significato speciale. String.rawci consente di scrivere il backslash come faremmo in un'espressione regolare letterale. Considera il seguente esempio.
var text =`Hello \n World`
console.log(text)
var raw_text = String.raw`Hello \n World `
console.log(raw_text)
Il seguente output viene visualizzato in caso di corretta esecuzione del codice precedente.
Hello
World
Hello \n World
Modelli con tag
UN tagè una funzione che può interpretare ed elaborare un modello letterale. Viene visualizzato un tag davanti al letterale del modello. La sintassi è mostrata di seguito.
Sintassi
let output_fromTag = tagFunction `Template literal with ${variable1} , ${variable2}`
La sintassi di implementazione della funzione tag è la seguente:
function tagFunction(literals,...variable_values){
//process
return "some result"
}
Esempio
L'esempio seguente definisce una funzione tag myTagFn(). Visualizza i parametri ad esso passati. Dopo averlo visualizzato ritornaDone al chiamante.
<script>
function myTagFn(literals,...values){
console.log("literal values are");
for(let c of literals){
console.log(c)
}
console.log("variable values are ");
for(let c of values){
console.log(c)
}
return "Done"
}
let company = `TutorialsPoint`
let company_location = `Mumbai`
let result = myTagFn `Hello this is ${company} from ${company_location}`
console.log(result)
</script>
L'output del codice precedente sarà come indicato di seguito:
//literal
literal values are
Hello this is
from
//values
variable values are
TutorialsPoint
Mumbai
Done
Esempio
Il sotto tag function prende un template literal e lo converte in maiuscolo come mostrato di seguito -
<script>
function convertToUpperTagFn(literals, ...values) {
let result = "";
for (let i = 0; i < literals.length; i++) {
result += literals[i];
if (i < values.length) {
result += values[i];
}
}
return result.toUpperCase();
}
let company = `TutorialsPoint`
let company_location = `Mumbai`
let result = convertToUpperTagFn `Hello this is ${company} from ${company_location}`
console.log(result)
</script>
L'output del codice sopra sarà come indicato di seguito -
HELLO THIS IS TUTORIALSPOINT FROM MUMBAI
String.fromCodePoint ()
La stringa statica.fromCodePoint()restituisce una stringa creata utilizzando la sequenza specificata di punti di codice Unicode. La funzione genera un RangeError se viene passato un punto di codice non valido.
console.log(String.fromCodePoint(42))
console.log(String.fromCodePoint(65, 90))
Il seguente output viene visualizzato in caso di corretta esecuzione del codice precedente.
*
AZ