what variable the statement node missing form es6 enable javascript strict

javascript - variable - use the function form of use strict



JavaScript ''modo estricto'' no funciona como se esperaba? (1)

var test = function() { ''use strict''; var mapNames = { ''name'': ''City Name:'', ''coord.lat'': ''Latitute:'' }; for (var key in mapNames) { var names; if (mapNames[key]) { name = mapNames[key]; } else { name = key; } } console.log(name); } test();

En el código anterior, cometí un error al declarar names variables y usar el name lugar. Pensé que el modo ''estricto'' lo atraparía pero no lo hizo. ¿No debería esto arrojar un error en este caso?


Ya existe una variable global de name , no relacionada con su código; representa el nombre de la ventana actual, por lo que está asignando a una variable ya existente.

window.name; // the name of the current window for cross-window communication

Todo en la window se declara como global, por lo que no se trata de errores de referencia, ya que se asigna a una variable en un ámbito externo.

Super confuso: d

"use strict" evitaría la definición de nuevas variables globales, aquí estamos realizando una asignación a una variable existente, piense que el name está en el ámbito global, como window.Blob , window.console , etc.