Javascript NodeJS Bug?执行返回字符串前带有换行符的返回语句时出错

Javascript NodeJS Bug?执行返回字符串前带有换行符的返回语句时出错,javascript,string,node.js,return,newline,Javascript,String,Node.js,Return,Newline,我正在尝试从一个模块调用一个函数来构建一个HTML字符串。 当函数以下面的方式编写时,在return语句和string声明之间使用LF(换行符),返回是“未定义的” exports.buildHtmlContent=函数(内容){ 返回 " \ \n\ \n\ \n\ \n\ \n“+内容+”\ \n\ \n”; }; 但是,当函数以下面的另一种方式编写时,如果没有LF after return语句,它将正常工作 exports.buildHtmlCont

我正在尝试从一个模块调用一个函数来构建一个HTML字符串。 当函数以下面的方式编写时,在return语句和string声明之间使用LF(换行符),返回是“未定义的”

exports.buildHtmlContent=函数(内容){
返回
"                    \
\n\
\n\
\n\
\n\
\n“+内容+”\
\n\
\n”;
};
但是,当函数以下面的另一种方式编写时,如果没有LF after return语句,它将正常工作

exports.buildHtmlContent = function (content) {
    return "<!DOCTYPE html>             \
    \n<html lang='en-US'>               \
    \n  <head>                          \
    \n  </head>                         \
    \n  <body>                          \
    \n      <h1>" + content + "</h1>    \
    \n  </body>                         \
    \n</html>";
};
exports.buildHtmlContent=函数(内容){
返回“\
\n\
\n\
\n\
\n\
\n“+内容+”\
\n\
\n”;
};
这是NodeJs中的一个bug? 函数1的NodeJs解释看起来好像认为返回是空的,即使缺少“;”,也没有将下面的字符串声明与return语句关联起来。
显然,NodeJs在决定“return”语句的解释结束之前没有检查“;”的缺失。

这与JavaScript有关,而不是Node.js。大多数JavaScript引擎都会实现,这意味着它将尝试用分号自动分隔两个子句。语句
return
本身是有效的,因为它将返回
undefined
,字符串也是有效的语句。例如:

"use strict";

ASI被触发的原因是由于断线和
返回
为限制生产。这不是一个bug,而是一个特性。

这与JavaScript有关,而不是Node.js。大多数JavaScript引擎都会实现,这意味着它将尝试用分号自动分隔两个子句。语句
return
本身是有效的,因为它将返回
undefined
,字符串也是有效的语句。例如:

"use strict";

ASI被触发的原因是由于断线和
返回
为限制生产。这不是一个bug,而是一个特性。

这与JavaScript有关,而不是Node.js。大多数JavaScript引擎都会实现,这意味着它将尝试用分号自动分隔两个子句。语句
return
本身是有效的,因为它将返回
undefined
,字符串也是有效的语句。例如:

"use strict";

ASI被触发的原因是由于断线和
返回
为限制生产。这不是一个bug,而是一个特性。

这与JavaScript有关,而不是Node.js。大多数JavaScript引擎都会实现,这意味着它将尝试用分号自动分隔两个子句。语句
return
本身是有效的,因为它将返回
undefined
,字符串也是有效的语句。例如:

"use strict";

ASI被触发的原因是由于断线和
返回
为限制生产。这不是一个bug,而是一个特性。

注意:这是因为
return
语句是JavaScript中限制换行符使用的少数语句。除此之外,ASI不会在每一个换行符中插入分号。感谢您的澄清,编辑了我的答案。注意:这是因为
return
语句是JavaScript中限制换行符使用的少数语句。除此之外,ASI不会在每一个换行符中插入分号。感谢您的澄清,编辑了我的答案。注意:这是因为
return
语句是JavaScript中限制换行符使用的少数语句。除此之外,ASI不会在每一个换行符中插入分号。感谢您的澄清,编辑了我的答案。注意:这是因为
return
语句是JavaScript中限制换行符使用的少数语句。除此之外,ASI没有那么咄咄逼人,以至于在每一个换行符中都插入分号。感谢您的澄清,编辑了我的答案。相关:相关:相关:相关: