NodeJS Bug?执行在要返回的字符串之前带有换行符的返回语句时出错
NodeJS Bug? Error when a return statement with a line feed before the string to be returned is executed
我正在尝试从模块中调用一个函数来构建HTML字符串。当函数以以下方式编写时,在return语句和字符串声明之间使用LF(换行符),则返回为"未定义"。。。
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>";
};
然而,当函数以下面的另一种方式编写时,如果没有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>";
};
这是NodeJs中的一个错误吗?NodeJs对函数1的解释看起来像是认为返回是空的,即使缺少";",并且没有将下面的字符串声明与return语句关联起来。显然NodeJs在决定"return"语句的解释结束之前没有检查";"的缺失。
这与JavaScript有关,而不是Node.js。大多数JavaScript引擎都实现了自动分号插入,这意味着它将尝试用分号自动分隔两个子句。语句return
本身是有效的,因为它将返回undefined
,字符串也是有效的语句。例如:
"use strict";
触发ASI的原因是线路中断和return
是限制生产。不是bug,而是功能。
相关文章:
- 如何在映射数组中添加换行符
- JQuery:向多个匹配结果添加换行符的最简单方法
- 在文本区域中使用jQuery.text()保持换行符
- javascript替换换行符和特殊字符
- 换行符拆分返回“”;未定义”;
- 如何使用web浏览器在NoSQL数据中呈现换行符
- 换行符插入jquery选择器
- jquery使用val()复制值似乎可以删除换行符
- 文本区域-获取每一行,找到换行符
- 处理字段中带有换行符的csv文件-node.js
- 使用jquery将单个换行符替换为span元素
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 咖啡脚本意外换行符
- 在文本区域中保留换行符.value
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- 比较JS中的换行符返回false
- 返回标签的文本值,并在每个标签后附加换行符
- 如何从保留换行符的 window.prompt() 返回文本
- NodeJS Bug?执行在要返回的字符串之前带有换行符的返回语句时出错
- 有人能解释为什么换行符使返回语句在JavaScript中未定义吗