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

Javascript 在返回变量之前,是否必须将函数结果赋给变量?,javascript,Javascript,我希望以下两个代码片段是等效的: function waitFirstLoadHTML(message) { var r = '<div class="form-blocker">' + '<span class="ui-corner-all">' + message + '</span>' + '</div>'; return r; } 函数waitFirstLoadHTML(消息){ var r=''+ ''+

我希望以下两个代码片段是等效的:

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

函数waitFirstLoadHTML(消息){
返回“”+
''+消息+''+
'';
}

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

在JavaScript中,我总是很难将字符串放在多行上-如果您这样做了,它会起作用吗:

function waitFirstLoadHTML(message)
{
    return '<div class="form-blocker"><span class="ui-corner-all">'+message+'</span></div>';
}
函数waitFirstLoadHTML(消息)
{
返回“”+消息+“”;
}

您的示例运行良好。如果您通过以下方式在浏览器中查看结果:

document.write(waitFirstLoadHTML(undefined));
它将显示为
未定义
,但实际字符串是:

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

您确定示例中没有遗漏什么吗?

在Javascript中,不需要将返回值拆分为两条语句(除非您愿意)。我认为这个例子可能还遗漏了一些东西?

对我来说很好@是的,这是应该的。但在我的页面中它没有。我花了一个小时把问题缩小到这个函数上。如果我用后者运行页面,它会失败,而用前者,它会工作。现在我迷路了——我本可以做些什么来打破后者而不是前者如果参数是“未定义的”,结果字符串将包含单词“未定义”,但结果的类型仍然是字符串。我遇到的问题是,返回的结果不是字符串,并且我尝试将其提供给的JQuery函数无法将其识别为字符串such@mfeingold-您需要提供一个更完整的示例,因为您在上面发布的内容符合预期,所以你的问题一定是别的。没有想到这一点-为了更好的可读性,把行分开。您遇到了什么样的问题?我在JS中尝试在多行上放置值时总是出现错误-不知道为什么。。从可读性上讲,我希望。。var html='';html+='';html+=‘内容’;html+='';返回html;
<div class="form-blocker"><span class="ui-corner-all">undefined</span></div>