- Alcance y el papel definiciones
definición del alcance: las variables JavaScript almacenados en las variables y encontrar el conjunto de reglas.
JavaScript generalmente siguen el ámbito léxico.
Encuentra encuentran las variables siguen de adentro hacia afuera:
Motor de las variables de ámbito de ejecución actual empezar a buscar, seguir mirando hacia arriba si usted no puede encontrar uno. Cuando llegaron al ámbito global más externa, ya sea para encontrar o no encontrar, el proceso de búsqueda se detendrá.
- ámbito léxico
En el ámbito léxico de la fase de definición. En el momento de escribir las variables de ámbito bloque de código y dónde escribir para decidir.
- producido alcance
JavaScript no tiene noción de alcance masivo. Entonces, ¿se trata simplemente de un alcance mayor {..} es el área encerrada bloque es una unidad mínima.
Simplemente podemos fijamos en el ámbito y en el período indicado o C # variables en el lenguaje Java en general, es el caso
Ámbito de las variables:
las variables con ámbito definido la posición de partida, el par de llaves esa variable donde el extremo;
Ciclo de Vida:
A partir de la variable en vivo en la memoria de la ubicación se ha definido anteriormente;
Variable llegan en su alcance cuando desapareció en la memoria;
Permítanme citar un ejemplo sencillo para bucle
C # variable i se define para no los ciclos de acceso fuera
JavaScript en el bucle externo para el acceso normal
A continuación, el alcance se crea en JavaScript cuando se
- ámbito global
Esto no necesita demasiada explicación, creo que todos entendemos
2. Funciones
javaScript cada crear una función burbuja va a crear un espacio para sí mismo. Todas las variables pertenecen a esta función se pueden utilizar y reutilizar en toda la función interna
- alcance masivo
Se dice que no hay js alcance masivo, pero donde hay excepciones, hay varias situaciones js pueden proporcionar efecto masivo alcance
1: try / catch
cláusula catch creará un alcance masivo, que declaran las variables sólo son válidos dentro de la captura
tratar{
sin definir ();
} Catch (err) {
console.log (err); // acceso lata
}
console.log (err); // aquí para visitar el menos, ReferenceError: err no encontrado
2: Let
Vamos alcance variable puede ser obligado {...}, donde el alcance mayor
foo Var = true;
Si (foo) {
bar = foo * 2 Let;
Console.log (bar); // acceso normal
}
Console.log (bar); // ReferenceError
l deja que lleva a cabo utilizando comunicado masiva alcance no será mejorada.
{
Console.log (bar); // ReferenceError
Deje bar = 2;
}
3: Const
Const también crea alcance masivo, pero se fija su valor, entonces cualquier intento de modificar la operación provocará un error.
- ámbito de actualización
Las declaraciones de funciones y declaraciones de variables aumentarán. La asignación u otra lógica operativa permanecerán en su lugar. Cuando las declaraciones de función y declaraciones de variables ocurren simultáneamente, la función será levantado primero, y entonces la variable.
No se levantó expresión de función
alcance de elevación se eleva a la parte superior del bloque en el que el ámbito de aplicación, es decir, donde {...} superior
<Script type = "text / javascript"> foo (); // no visita // var a = true; { foo (); // obtener acceso a función foo () { console.log ( "a"); } } </ Script>
- ámbito de cierre
- Inmediatamente ejecutar la función
- ámbito léxico Engañar