在返回变量之前,是否必须将函数结果分配给变量?

时间:2011-04-28 22:05:29

标签: javascript

我预计以下两个代码段是等效的:

function waitFirstLoadHTML(message) {
    var r = '<div class="form-blocker">' +
    '<span class="ui-corner-all">' + message + '</span>' +
    '</div>';
    return r;
}

function waitFirstLoadHTML(message) {
    return '<div class="form-blocker">' +
    '<span class="ui-corner-all">' + message + '</span>' +
    '</div>';
}

但不知何故,第一个按预期返回字符串值,而第二个返回undefined。知道为什么吗?

3 个答案:

答案 0 :(得分:1)

我总是在JavaScript中将字符串放在多行上时遇到问题 - 如果你这样做,它是否有效:

function waitFirstLoadHTML(message)
{
    return '<div class="form-blocker"><span class="ui-corner-all">'+message+'</span></div>';
}

答案 1 :(得分:1)

你的例子很好用。如果您在浏览器中查看结果,请说:

document.write(waitFirstLoadHTML(undefined));

它将显示为undefined,但实际字符串为:

<div class="form-blocker"><span class="ui-corner-all">undefined</span></div>

你确定你没有遗漏你的例子吗?

答案 2 :(得分:0)

在Javascript中,您无需将返回分为两个语句(除非您愿意)。我想这个例子可能还有其他东西丢失了?