Capítulo 4 de JavaScript Programación avanzada Lectura compartida - 4.2 Contexto de ejecución y alcance

JavaScript Programación avanzada (4.ª edición) Lectura Compartir Notas Grabación

Aplicable a camaradas que recién comienzan

 contexto de ejecución

El contexto de una variable o función determina a qué datos pueden acceder y cómo se comportan.
En el navegador, el contexto global es lo que a menudo llamamos el objeto ventana ( el Capítulo 12 lo presentará en detalle), por lo que todas las variables y funciones globales definidas a través de var se convertirán en las propiedades y métodos del objeto ventana .
Ejemplo:
var color = "blue"; 
function changeColor() { 
 let anotherColor = "red"; 
 function swapColors() { 
 let tempColor = anotherColor; 
 anotherColor = color; 
 color = tempColor; 
 // 这里可以访问 color、anotherColor 和 tempColor 
 } 
 // 这里可以访问 color 和 anotherColor,但访问不到 tempColor 
 swapColors(); 
} 
// 这里只能访问 color 
changeColor();
El código anterior implica 3 contextos:
Contexto global , contexto local para changeColor() y contexto local para s wapColors() .

 

  • El contexto interno puede acceder a todo en el contexto externo a través de la cadena de ámbito, pero el contexto externo no puede acceder a nada en el contexto interno.
  • Cada contexto puede ir al contexto de nivel superior para buscar variables y funciones, pero ningún contexto puede ir al contexto de nivel inferior para buscar

declaración de variables

Declaración del alcance de la función usando var

  • Al declarar una variable con var , la variable se agrega automáticamente al contexto más cercano.
  • Las declaraciones de var se colocan en la parte superior de la función o el alcance global, antes de todo el código en el alcance - 'elevación de variables'

Declaraciones de alcance de bloque usando let

  • La nueva palabra clave let en ES6 es muy similar a var , pero su alcance es a nivel de bloque , que también es un concepto nuevo en JavaScript
  • El alcance a nivel de bloque está delimitado por el par de llaves más cercano {}
  • Los bloques if , los bloques while , los bloques de funciones e incluso los bloques individuales también son el alcance de las variables de declaración let.
Otra diferencia entre let y var es que no se puede declarar dos veces en el mismo ámbito. Las declaraciones de var duplicadas se ignoran y las declaraciones de let duplicadas generan un SyntaxError .

Supongo que te gusta

Origin blog.csdn.net/weixin_42307283/article/details/129139410
Recomendado
Clasificación