DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js馃拪| #55: Explica este c贸digo JavaScript

Explica este c贸digo JavaScript

const output = `${[] && 'Im'}possible!
You should${'' && `n't`} see a therapist after so much JavaScript lol`
Enter fullscreen mode Exit fullscreen mode
  • 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.


Discussion (1)

Collapse
duxtech profile image
Cristian Fernando Author

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 y falsy.
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
  • {}
  • []
  • Cualquier valor de tipo number (42, -56, 1.5, -6.33)
  • Cualquier string que no sea vacio ("0", "Hola mundo", "false")
  • En objeto Date (new Date())

Volviendo al ejemplo, un arreglo vacio [] es truthy entonces se ejecuta la segunda parte de la expresion, osea, el string '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 valor falsy.

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贸n n't no se ejecuta.

En conclusi贸n, la respuesta es: Impossible! You should see a therapist after so much JavaScript lol