first commit
This commit is contained in:
82
src/markdowns/stories/literales.md
Normal file
82
src/markdowns/stories/literales.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# *Template literals* o *comillas invertidas*
|
||||
#### 13/09/2020
|
||||
|
||||
Como sabeis en *JavaScript*, para declarar un **String** hay que ponerlo entre comillas:
|
||||
|
||||
const texto = "me llamo Manuel"
|
||||
const texto = 'me llamo Manuel'
|
||||
|
||||
Desde la versión **ES6** es posible hacerlo con las comillas invertidas:
|
||||
|
||||
const texto = `me llamo Manuel`
|
||||
|
||||
¿Que ventajas tiene esto?, una de ellas es la **inserciòn de variables**. La forma habitual:
|
||||
|
||||
const nombre = 'Manuel'
|
||||
const texto = 'me llamo ' + nombre
|
||||
|
||||
Con comillas literales
|
||||
|
||||
const nombre = `Manuel`
|
||||
const texto = `me llamo ${nombre}`
|
||||
|
||||
Además acepta funciones u operaciones, veamos un ejemplo:
|
||||
|
||||
const num1 = `7`
|
||||
const num2 = `4`
|
||||
const multiplicar = `Multiplicar ${num1} y ${num2} da como resultado ${num1 * num2}`
|
||||
|
||||
Y ahora con una función que comprueba si un número es primo o no:
|
||||
|
||||
const num = `8`
|
||||
const primo = `El número ${num} ${esPrimo(num) ? 'es primo' : 'no es primo'}
|
||||
|
||||
Otra ventaja es que te permite definir cadenas de texto en varias líneas:
|
||||
|
||||
const texto = `Esta es la primera linea,
|
||||
segunda línea y
|
||||
tercera linea`
|
||||
|
||||
|
||||
Y por último los **Template tags**, no es más que una manera de ejecutar una función con *Strings*. Por ejemplo creamos esta función:
|
||||
|
||||
```
|
||||
function prueba(literales, ...expresiones) {
|
||||
for (let i = 0; i < literales.length; i++) {
|
||||
console.log(`literal ${i} es: "${literales[i]}"`);
|
||||
}
|
||||
for (let j = 0; j < expresiones.length; j++) {
|
||||
console.log(`expresión ${j} es: "${expresiones[j]}"`);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Al ejecutar la función con un *String* se crean dos *Arrays*, "literales" que contiene las partes de texto y "expresiones" que contiene, como su nombre indica las expresiones.
|
||||
|
||||
Al ejecutar:
|
||||
|
||||
```
|
||||
const num1 = 5;
|
||||
const num2 = 3;
|
||||
|
||||
const resultado = prueba`La suma de ${num1} y ${num2} es igual a ${
|
||||
num1 + num2
|
||||
}`;
|
||||
console.log(resultado);
|
||||
```
|
||||
|
||||
esto da como resultado:
|
||||
|
||||
```
|
||||
literal 0 es: "La suma de "
|
||||
literal 1 es: " y "
|
||||
literal 2 es: " es igual a "
|
||||
literal 3 es: ""
|
||||
expresión 0 es: "5"
|
||||
expresión 1 es: "3"
|
||||
expresión 2 es: "8"
|
||||
```
|
||||
|
||||
Visto en [neoguias.com](https://www.neoguias.com/template-literals-javascript/)
|
||||
|
||||
Salu2
|
||||
Reference in New Issue
Block a user