Javascript 为什么我会得到一个未定义的?

Javascript 为什么我会得到一个未定义的?,javascript,undefined,Javascript,Undefined,因此,我在一个链接到html页面的.js文件中创建了一个函数,这是我的函数: function produitListe1(x){ var x = new String("25678"); var a = x.split(", "); var sResultat; for(var i=0; i < x.length;i++){ sResultat = sResultat + ("<ul>" + "<li>" + x

因此,我在一个链接到html页面的.js文件中创建了一个函数,这是我的函数:

function produitListe1(x){
    var x = new String("25678");
    var a = x.split(", ");
    var sResultat;

    for(var i=0; i < x.length;i++){
        sResultat = sResultat + ("<ul>" + "<li>"  + x[i] + "</li>"  + "</ul>");
    }
    return sResultat;
} 

当我加载页面时,我在不同的li上得到了我的字符串。但是我在顶部得到了一个随机的未定义调用,为什么?

因为第一次执行for循环时,
sResultat
还没有被赋值(因此是未定义的),而您正在将它赋值给自己(未定义的)
+(“
    ”+“
  • ”+x[I]+“
  • ”“

尝试将
sResultat
初始化为空字符串(
var sResultat=“”;
),而不仅仅是
var sResultat;

  • 如果要在函数内部重新澄清参数
    x
    ,则该参数的意义是什么
  • 你调用函数的方式,我认为你要做的是使用函数的对象
  • 试试这个:

    function produitListe1(){
        var sResultat = ""; // this should be initialized
        for(var i = 0; i < arguments.length; i++) {
            sResultat += "<ul><li>"  + arguments[i] + "</li></ul>"; // += is better
        }
        return sResultat;
    }
    

    您应该使用空字符串初始化
    sResultat

    var sResultat = '';
    
    函数produitlist1(){
    var sResultat='';
    for(var i=0;i”+“
  • ”+参数[i]+”
  • “+””); } 返回sResultat; } (功能(){ document.getElementById(“out”).innerHTML=produitList1(2,5,6,7,8); })();

    <25678.split(',')
    “25678.split()
    尝试执行
    x=undefined+“foo”
    并查看
    x
    的值。arguments对象实际上更方便!谢谢!
    var sResultat = '';