Todo el mundo. Estoy aprendiendo javascript. Ejecuté este código: (abajo)
function x(){ return this; } console.log(x() === global);en el editor Atom, luego obtuve un resultado que fue "falso". (vea mi imagen agregada) Sin embargo, recurrí a otro editor en línea para ejecutar el mismo código y luego obtuve el resultado "verdadero". (por favor vea mi foto añadida)
Mi primera pregunta es: ¿Es el problema de Atom lo que lleva a resultados diferentes?
Mi pregunta uno dos: escuché que "===" se llama igualdad estricta, lo que significa que será "falso" si el operando izquierdo es diferente con el operando derecho. Pero, en el código que acabo de publicar, en esta línea "(x() === global)", el resultado es "verdadero", mientras que el operando izquierdo y el operando derecho son ciertamente diferentes, entonces, ¿qué tiene de malo? ¿Es que todavía no estoy aprendiendo sobre algunos conceptos fundamentales?
en "modo descuidado" this palabra clave en una función se refiere al objeto global. mientras que en modo estricto su valor es indefinido. No estoy seguro de la configuración de su editor, pero diría que ambos son correctos según la configuración. Podría ser que atom establezca el modo estricto de forma predeterminada mientras que el otro editor no lo hace.
Más información sobre qué es el modo estricto y qué efecto tiene y por qué se usa en la documentación de MDN