1

JavaScript を使用しているときに、空の文字列を連結する際に問題が発生します。たとえば、次のように宣言します。

var usersToAppend, leadsToAppend = "";
$(document).ready(function() {
    console.log(usersToAppend);
    parser = new DOMParser();

    //Get list of users
    var usersXML = parser.parseFromString('<%=WebConnector.getSomeXML()%>', "text/xml");
    console.log(usersXML);
    var users = usersXML.getElementsByTagName("users")[0].childNodes;
    for(var k = 0; k < users.length; k++)
        usersToAppend += users[k].childNodes[0].nodeValue + " -- "+users[k].attributes.getNamedItem("email").nodeValue+"<br>";
});

usersToAppend始まりundefinedます。この問題を回避するにはどうすればよいですか?

編集:usersToAppendと の初期化が不適切でしleadsToAppendた。正しい初期化コードは

var usersToAppend = "", var leadsToAppend = "";
4

1 に答える 1

6

usersToAppend空の文字列に初期化するのを忘れました:

var usersToAppend = "", leadsToAppend = "";

空の文字列は、他の文字列と問題なく連結されます。問題は、値を割り当てない場合です。これは、別の文字列と連結しようとするとundefined、文字列として扱われ、文字列に強制されます。"undefined"

var foo = '';
foo += 'baz';
console.log(foo); //"baz"

var bar; //no value, treated as undefined
bar += 'baz';
console.log(bar); //"undefinedbaz", undefined coerced to string is "undefined"
于 2013-04-26T19:41:15.150 に答える