2017-02-17 53 views
2

所以我创造了我链接到一个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; 
} 

,然后显示我的网页上的功能结果我创建另一个函数,它是这样的

(function(){ 
    var aLesDiv = document.querySelectorAll("#global div"); 
    aLesDiv[0].innerHTML = produitListe1(2,5,6,7,8); 
})(); 

当我li's..but我得到一个随机不确定呼叫顶部加载的页面,我得到我的型动物串,为什么呢?

+1

' “25678” .split( '')'给你同样的结果' “25678” .split()' –

+0

试着做'X =不确定+ “foo”;'看看'x'的价值是什么。 – Barmar

回答

2
  1. 什么说法x的点,如果你rediclaring它里面的功能。
  2. 您调用函数的方式,我认为您要做的是使用函数的arguments对象。

尝试这种情况:

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; 
} 

arguments是各函数中定义的局部变量,它是一个包含传递给函数的所有参数时,它被称为阵列状物体。

function foo() { 
 
    for(var i = 0; i < arguments.length; i++) 
 
    console.log("Parameter #" + (i+1) + ": " + arguments[i]); 
 
} 
 

 

 
foo(1, "R2D2", 13.56, true);

+0

参数对象实际上更方便!谢谢! –

1

因为是第一次执行你的for循环,sResultat尚未分配一个值(并因此不确定的),且将其分配给自己(不确定)+ ("<ul>" + "<li>" + x[i] + "</li>" + "</ul>")

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

0

你应该用一个空字符串初始化sResultat

var sResultat = ''; 

function produitListe1() { 
 
    var sResultat = ''; 
 

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

 
(function() { 
 
    document.getElementById("out").innerHTML = produitListe1(2, 5, 6, 7, 8); 
 
})();
<div id="out"></div>

相关问题