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!