Aquí hay 5 pequeños scripts que lo ayudan a comprender realmente los cierres y ámbitos de JavaScript. Antes de ejecutar la consola, intente responder lo que aparecerá en cada caso, y luego puede crear un archivo de prueba para verificar su respuesta. ¿Estás listo?
1.
La copia del código es la siguiente:
if (! ("a" en la ventana)) {
var a = 1;
}
alerta (a);
2.
La copia del código es la siguiente:
var a = 1,
b = función a (x) {
x && a (-x);
};
alerta (a);
3.
La copia del código es la siguiente:
función a (x) {
regreso x * 2;
}
var a;
alerta (a);
4.
La copia del código es la siguiente:
función b (x, y, a) {
argumentos [2] = 10;
alerta (a);
}
b (1, 2, 3);
5.
La copia del código es la siguiente:
función a () {
alerta (esto);
}
A.call (nulo);
Mis respuestas de predicción son: indefinidos, 1, no sé, 10, nulo
La respuesta es al final de este artículo. ¿Te atreves a dejar tus conjeturas antes de mirar la respuesta?
Respuesta correcta: 1. Undefined 2. 1 3. Función A (x) {return x * 2} 4. 10 5. [Ventana de objeto]