midulive
Transcribed podcasts: 746
Time transcribed: 15d 5h 20m 39s
This graph shows how many times the word ______ has been mentioned throughout the history of the program.
esto esto que vamos a ver aquí es muy curioso lo que pasa con este objeto más
array y ahora os explicaré por qué porque esto no es lo que parece objeto
más array es cero pero esto no tiene mucho sentido verdad y hay gente que
dice javascript está roto porque fíjate que tú sumas un objeto y una rey te da
cero pero esto no es verdad del todo de hecho quiero probarlo en range es a ver
si da lo mismo aquí pone que es cero qué pasa si lo hago al revés no pongo a rey
más objeto no le gusta pero no le gusta porque justamente esto tiene que ser con
punto y coma porque si no objeto vacío más a rey es cero pero a rey más objeto es
objeto objeto esto puede tener más sentido porque el más aquí lo que está haciendo
es intentar concatenar como si fuese dos strings y lo que está haciendo es
transformar los tipos y tal vale y si te digo que la línea 1 no es cero en
javascript una de las cosas que puedes hacer justamente para evaluar la
expresión sería ponerla entre paréntesis entonces si pongo esta entre paréntesis
veo que aquí pues me da exactamente lo mismo vamos a poner esto entre paréntesis
para asegurarnos para asegurarnos que va a intentar concatenar el objeto y el
array a ver qué pasa pues ahora ya no es cero no ahora lo que está pasando es que es
object object esto es muy raro no estamos viendo que el objeto más la
rey ya no es cero sino que es object object lo que está pasando aquí no es
javas que lo que está pasando aquí es en realidad cómo funciona la consola el cómo
se está evaluando esta línea de código a no ante nuestros ojos si yo aquí intento
crear un objeto no pongamos que hay perdón pongo name me dude vale y hago esto me ha
devuelto el objeto y esto ha funcionado correctamente pero si intentásemos
ejecutar este javascript en realidad esto no funcionaría el cómo está evaluando javascript
la consola no es la forma en la que trabaja realmente javascript está evaluando de una
forma distinta seguramente aquí lo que tiene chrome es decir vale si empiezo si empieza por una
por una llave y luego tiene un objeto pues voy a pensar que es un objeto pero si tú intentas
utilizar esto en un código por ejemplo ves me pone aquí y unos label no entiende que es un objeto esta
sintaxis no es correcta entonces una forma interesante de ver este problema para entender qué es lo que está
pasando realmente porque esto es cero esto de que esto sea cero esto no es culpa de javascript como
hemos visto si pongo paréntesis ya funciona bien entre comillas vale para saber exactamente qué está pasando
con esto una cosa que podemos utilizar es el ast explorer ast explorer es una herramienta en la que
tú pones código hola mi dude una función y hago un console log y digo hola mi dude a partir de este
código esto lo que te crea es un árbol vale así es como funcionan los plugins de babel porque detectan
por ejemplo las declaraciones y de esto es una declaración vale identificador y tú vas entrando ves
te dice arrow function expression donde empieza dentro base al body block statement podéis ver a la izquierda
aquí vais viendo lo que voy seleccionando y ha ido detectando cada una de las cosas que vale esto es
una expresión esto es tal esto es lo otro entonces yo puedo ir entrando hasta que ya tengo aquí el hola
mi dude es interesante porque hemos venido aquí es para ver esto que entiende por esto cuando hacemos el
ast explorer aquí lo que entiende es que es una expresión un área este es un área operator este más que
pensamos que lo está concatenando en realidad este código no lo está concatenando no está haciendo un
concat lo que está haciendo es esto lo está entendiendo que es un bloque statement esto que tú ves que es un
objeto no es un objeto porque tú en javascript puedes hacer labels que se le llama tú puedes crear esto como
hacemos esto y aquí ponemos una condition vale ves que tenemos aquí las llaves pues en javascript puedes
hacer esto y aquí podrías poner código esto funciona en javascript el problema es que cuando nosotros lo
ponemos así en realidad lo que está detectando aquí es un bloque statement que es justamente esto de aquí
podría bueno es un if statement pero dentro del if statement después bloque statement así que cuando hace
esto para javascript esto no es un objeto es un bloque statement y esto es el operador unario para el
rey de forma que esto es cero y eso sería un poco la historia
es como sería