¿Por qué se pueden declarar variables repetidamente en la consola del navegador?
Recuerdo que habría informado de un error antes. ¿El cromo de 21 años se basa en esa especificación ECMA?
sea a=1
indefinidosea a=12
indefinidonavigator.userAgent
'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, como Gecko) cromático
yo/93.0.4577.82 Safari/537.36'
Aquí hay una captura de pantalla:
El entorno de la consola tiene una serie de peculiaridades extrañas. No es como una etiqueta <script> estándar en la página.
Una de las peculiaridades son estas. La forma en que solía ser en Chrome era que no se permitían las redeclaraciones de variables con let ; obtendría el error esperado de que la redeclaración no tiene una sintaxis no válida. Pero a partir de Chrome 80 más o menos (primavera de 2020), se cambió para permitirlo .
Todavía no puede volver a declarar variables con let en un <script> estándar, por supuesto:
let foo = 5; let foo = 10;No puede volver a declarar una variable previamente declarada con let en modo estricto. Consulte:¿Cuál es la diferencia entre usar "let" y "var"? .