window.onload = function(){ func1(); }; var list = []; function func1(){ for(var i = 0; i < 9; i++){ list.push(i); } } console.log(list);¿Qué registro de salida es una matriz vacía? Entonces, ¿cómo agrego elementos a una matriz global en una función y accedo a ellos globalmente?
El código de tu función está bien.
Sin embargo, está registrando la matriz usando console.log antes de que se ejecute func1(), ya que window.onload se activa DESPUÉS de que todo se haya cargado.
Centrémonos en por qué el console.log al final está vacío.
Tenga en cuenta que :
ventana. onload() se invoca cuando todos los recursos (el documento, objetos, imágenes, css, etc.) han terminado de renderizarse.
Entonces, después de que la console emita el valor de la lista, ejecutará func1 y asignará el valor a la list , pero antes de que la list sea solo una matriz vacía.
Si pudiera ver el siguiente fragmento, si coloca la console en la función window.onload , funciona como se esperaba.
Puede usar push para agregar un elemento a la matriz y usar el índice para acceder a un elemento específico.
window.onload = function(){ func1(); console.log(list); func2() console.log(list) }; var list = []; function func1(){ for(var i = 0; i < 9; i++){ list.push(i); } } console.log(list); function func2(){ list[0] =9999 }Debe esperar a que se cargue la ventana y llamar a su función func1 antes de registrar el valor de la matriz en la consola...
window.onload = function(){ func1(); console.log(list); }; var list = []; function func1(){ for(var i = 0; i < 9; i++){ list.push(i); } }