Skip to content

Instantly share code, notes, and snippets.

@davidjsalazarmoreno
Last active May 26, 2019 00:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidjsalazarmoreno/5bfb485ce2303679d2d2b01535c24db7 to your computer and use it in GitHub Desktop.
Save davidjsalazarmoreno/5bfb485ce2303679d2d2b01535c24db7 to your computer and use it in GitHub Desktop.
const foo = 100
const bar = 20
// La línea es  -  o ++ (en cuyo caso disminuirá / incrementará el siguiente token).
bar
++
foo
/*
La intención es que se interptete así
bar++;
foo;
Pero el ASI detecta el salto de linea luego del bar y el resultado será este:
bar;
++foo;
Ahora, ¿quién en su sano juicio escribiría algo así? 🤬
*/
// La siguiente línea comienza con [, (, +, *, /, -, coma, punto , o algún otro
// operador binario que solo se puede encontrar entre dos tokens en una sola expresión.
console.log('Este código dispara un error debido al ASI')
['🥩', '🌭', '🥧'].map(food => {
return '💩'
})
/*
Lo anterior se interpreta asi:
console.log('Este código dispara un error debido al ASI')['🥩', '🌭', '🥧'].map(food => {
return '💩'
})
*/
// Mejor
const foo = 100
const bar = 20
// 4.La siguiente línea comienza con [, (, +, *, /, -, coma, punto , o algún otro
// operador binario que solo se puede encontrar entre dos tokens en una sola expresión.
console.log(`
Punto y coma "defensivo" para indicar
que la declaración anterior termina
`)
;['🥩', '🌭', '🥧'].map((food) => {
return '💩'
})
// O aún mejor si eres de la escuela "nada de punto y coma"
const foo = 100
const bar = 20
const foods = ['🥩', '🌭', '🥧']
// 4.La siguiente línea comienza con [, (, +, *, /, -, coma, punto , o algún otro
// operador binario que solo se puede encontrar entre dos tokens en una sola expresión.
console.log('¡Mejor que mejor!')
foods.map(food) => {
return '💩'
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment