Explica este código JavaScript
const output = `${[] && 'Im'}possible!
You should${'' && `n't`} see a therapist after so much JavaScript lol`
- A:
possible! You should see a therapist after so much JavaScript lol
- B:
Impossible! You should see a therapist after so much JavaScript lol
- C:
possible! You shouldn't see a therapist after so much JavaScript lol
- D:
Impossible! You shouldn't see a therapist after so much JavaScript lol
Respuesta en el primer comentario.
Top comments (1)
Respuesta:
B:
Impossible! You should see a therapist after so much JavaScript lol
Muchas cosas que analizar en este ejemplo.
La sintaxis de backtick o de comillas simples invertidas (alt+96) sirven para evaluar expresiones dentro de cadenas de texto.
Primera expresión a evaluar:
En
${[] && 'Im'}
tenemos el operador de corto circuito&&
.Para usar los operadores de corto circuito debemos tener en cuanta los valores
truthy
yfalsy
.Si la primera parte de la expresión evalua como
truthy
entonces ejecutamos la segunda parte de la expresión.Los valores
truthy
son:true
{}
[]
number
(42
,-56
,1.5
,-6.33
)string
que no sea vacio ("0"
,"Hola mundo"
,"false"
)Date
(new Date()
)Volviendo al ejemplo, un arreglo vacio
[]
estruthy
entonces se ejecuta la segunda parte de la expresion, osea, elstring
'Im'
.Segunda expresión a evaluar:
En
${ '' &&
n't}
nuevamente tenemos el operador de corto circuito&&
, esta vez la primera parte de la expresión es un valorfalsy
.Los valores
falsy
son:false
0
""
(cualquier cadena vacia)undefined
null
NaN
La primera parte de la expresión es una cadena vacia que vendría a representar un valor
falsy
y por ello la segunda parte de la expresiónn't
no se ejecuta.En conclusión, la respuesta es:
Impossible! You should see a therapist after so much JavaScript lol