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