js alcance y estado de avance

ámbito global

  1. Creado cuando se abre la página, destruido cuando está cerrado.
  2. En el ámbito global tiene una ventana de objeto global, se puede utilizar directamente. Creado por el navegador, puede utilizar la página.
  3. Las variables globales creadas en el papel, generarán como una propiedad del objeto de la ventana. var a = 10, disponible llamada window.a. Crear una función se genera como un método de ventana.
var a = 10;
console.log(window.a) //等于console.log(a)
function fun() {}

Declaración de variables de antemano

  1. Las variables declaradas usando la palabra clave var, que serán declarados antes de ejecutar cualquier código (pero no asignados).
  2. Si no se utiliza la palabra clave var al declarar una variable, la variable no será declarado de antemano.
    Var palabra clave:
console.log(a)   // undefined
var a = 123;

Es equivalente a:

var a   // 声明
console.log(a)   // undefined
a = 123; //赋值

No utilice la palabra clave var a las variables de declarar:

console.log(a)  // Uncaught ReferenceError: a is not defined
a = 123  

declaración de la función de antemano

  1. Creado con las declaraciones de funciones en la forma de una función (fun1) luego será creado antes de ejecutar cualquier código, por lo que se puede llamar antes de la declaración de la función.
  2. Uso Crea expresión de función de la función no se declara de antemano, no puede ser declarada antes de la llamada.
fun1()   //  控制台打印 "我是fun1"
console.log(fun2) // undefined
fun2()   // Uncaught TypeError: undefined is not a function(fun2不是函数)
function fun1() {     // 函数声明,会被提前创建
  console.log('我是fun1')
}
var fun2 = function() {  // 函数表达式,不会提前创建
   console.log('我是fun2')
}

ámbito de una función

  1. Crear un ámbito de función cuando la función se llama función se completa destruido.
  2. Cada llamada a la función va a crear un nuevo ámbito de la función, independientes entre sí.
  3. En la función de alcance puede acceder a las variables de alcance global.
  4. ámbito global no puede acceder a las variables de ámbito función.
var a = 10
function fun() {
  var b = 10
  console.log(a)
}
fun() // 10
console.log(b) // Uncaught ReferenceError: b is not defined
  1. Cuando la función de alcance variable manipulada, su papel está buscando ahora de dominio, se utilizan directamente, sin el hasta encontrar un ámbito.
var a = 10
function fun() {
   var a = '函数中a'
   console.log(a) // 函数中a
}
fun() // 10
  1. En la declaración de la función alcance también características avanzadas variable declarada usando la palabra clave var será (voluntad declaración de la función) declaración ante cualquier código que se ejecuta en la función.
var a = 10
function fun3() {
	console.log(a)    // undefined (var关键字变量声明提前)
	var a = 20
}
  1. Las variables no utilizan var declarada en una función, se convertirán en variables globales.
var c = 10
function fun5() {
	console.log(a)    // undefined (var关键字变量声明提前)
	c = 20  // 这里改变了全局的c
	d = 100  // d 没有使用var关键字则会设置为全局变量
}
console.log(c) // 20
console.log(d) // 100
  1. Parámetro corresponde al ámbito de la función definida declaran variables.
var e = 23
function fun6(e) {
	console.log(e) // undefined
}
fun6()
Publicado 27 artículos originales · ganado elogios 4 · Vistas 2826

Supongo que te gusta

Origin blog.csdn.net/qq_39083496/article/details/102667095
Recomendado
Clasificación