DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated 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.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando • Edited

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")
  • El 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

This post blew up on DEV in 2020:

js visualized

🚀⚙️ JavaScript Visualized: the JavaScript Engine

As JavaScript devs, we usually don't have to deal with compilers ourselves. However, it's definitely good to know the basics of the JavaScript engine and see how it handles our human-friendly JS code, and turns it into something machines understand! 🥳

Happy coding!