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
了,外部的data
Pourquoi ne peut-on pas l'appeler ?
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 ;
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 ;Si elle est appelée, une variable doit être utilisée pour recevoir la valeur de retour, telle que :
var datas = getData();# 🎜🎜#
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 :
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.var datas = getData(list);
Afin de distinguer, vous pouvez modifier les paramètres en différents, tels que :
}function getData(listParam){
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.