suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Warum wird nach der Rückgabe von Daten die Meldung „Daten sind nicht definiert“ angezeigt?

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

Bereitsreturn data了,外部的dataWarum kann es nicht aufgerufen werden?

过去多啦不再A梦过去多啦不再A梦2752 Tage vor866

Antworte allen(5)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-05-19 10:43:05

    你所说的data是定义在getData方法中的一个局部变量,在外面是不能使用的,你可以使用一个变量接受返回值
    var myData =getData()

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:43:05

    你需要getData获取到值,然后才能使用它。

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-19 10:43:05

    前面只是定义了函数getData,但没有调用;
    调用的话需要用一个变量接收返回值,如:
    var datas = getData();

    data是函数中的局部变量,在函数外部不能访问。外部访问的其实是在外部定义的data变量,外部没有定义时,就提示not defined;
    getData函数中使用的list,函数里面没有定义,应该是在函数外定义的,最好改成函数参数:
    function getData(list){

    ...

    }
    调用:
    var datas = getData(list);

    另外,在外部有list变量的情况下,getData的参数也是list,在函数内部使用的是参数list,而不是外部的变量list。
    为了区分可以把参数改成不一样的,如:
    function getData(listParam){

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

    }
    调用不变:
    var datas = getData(list);
    调用时使用的参数是外部的变量list,执行的时候把list赋值给listParam,在函数内部用listParam表示传递给函数的参数

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:43:05

    因为你的data是在函数内用var申明嗯,是函数的局部变量,不可以在函数外直接调用,虽然你可以通过> return 的方式将data的数据返回出去,但是你在外边调用该函数时就得设置一个变量接受返回值

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-19 10:43:05

    ...这个问题。

    在函数外面应该这么写:alert(getDtata().length),至于为什么,先把基础弄清楚吧。

    Antwort
    0
  • StornierenAntwort