javascript - Pourquoi les données non définies apparaissent-elles après le retour des données?
过去多啦不再A梦
过去多啦不再A梦 2017-05-19 10:41:05
0
5
865
function getData() {
    var data = new Array();
  for (var i=0; i<list.length; i++) {
    var city_text = list[i].firstChild.nodeValue;
    var city = city_text.substring(0,2);    //截取字符串,从0到2,但不包括2.
    var num = list[i].lastChild.innerHTML;
    data[i] = [city,num];
    }
  alert(data.length);    //7
  return data;
}
alert(data.length);    //data is not defined

Déjàreturn data了,外部的dataPourquoi ne peut-on pas l'appeler ?

过去多啦不再A梦
过去多啦不再A梦

répondre à tous(5)
仅有的幸福

Les données dont vous parlez sont une variable locale définie dans la méthode getData et ne peuvent pas être utilisées à l'extérieur. Vous pouvez utiliser une variable pour accepter la valeur de retour
var myData =getData()

.
大家讲道理

Vous devez obtenir la valeur avec getData avant de pouvoir l'utiliser.

洪涛

La fonction getData vient d'être définie auparavant, mais n'est pas appelée ;
Si elle est appelée, une variable doit être utilisée pour recevoir la valeur de retour, telle que :
var datas = getData();# 🎜🎜#

data est une variable locale dans la fonction et n'est pas accessible en dehors de la fonction. L'accès externe est en fait la variable de données définie en externe si elle n'est pas définie en externe, elle affichera une invite non définie ;

La liste utilisée dans la fonction getData n'est pas définie dans la fonction. Il est préférable de le changer en Paramètres de fonction :
function getData(list){

...
}

Appel :
var datas = getData(list);

De plus, lorsqu'il existe une variable de liste externe, le paramètre de getData est également une liste. La liste de paramètres est utilisée à l'intérieur de la fonction, pas la liste de variables externes.

Afin de distinguer, vous pouvez modifier les paramètres en différents, tels que :
function getData(listParam){

... // 函数内部使用listParam代替list
}

L'appel reste inchangé :
var datas = getData(list);
Le paramètre utilisé lors de l'appel est la variable externe list Lors de l'exécution, la liste est affectée à listParam. . ListParam est utilisé à l'intérieur de la fonction pour représenter les paramètres passés à la fonction
.

我想大声告诉你

Étant donné que vos données sont déclarées avec var à l'intérieur de la fonction, il s'agit d'une variable locale de la fonction et ne peut pas être appelée directement en dehors de la fonction. Bien que vous puissiez renvoyer les données de data via > return, vous l'appelez en dehors de la fonction. en utilisant une fonction, vous devez définir une variable pour accepter la valeur de retour

洪涛

...cette question.

Cela devrait être écrit comme ceci en dehors de la fonction : alert(getDtata().length). Quant à savoir pourquoi, clarifions d'abord les bases.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal