JavaScript中的续行字符

什么是在JavaScript继续行的最佳做法? 我知道你可以使用\作为string。 但是,如何分割下面的代码呢?

 var statement = con.createStatement("select * from t where (t.a1 = 0 and t.a2 >=-1) order by a3 desc limit 1"); 

如果我很好理解它:

 var statement = con.createStatement('select * from t where ' + '(t.a1 = 0 and t.a2 >=-1) ' + 'order by a3 desc limit 1'); 

为了便于阅读,可以在每行alignment+运算符:无论如何, 除非您使用的是Ecmascript 2015 , 否则请避免使用\拆分多行string,因为:

  1. 这不是标准的JavaScript
  2. 该字符后面的空格可能会生成parsing错误

我喜欢使用反斜杠的JavaScript行延续,如下所示:

  // validation $(".adjustment, .info input, .includesAndTiming input, \ .independentAdj, .generalAdj, .executiveAdj \ #officeExpense, #longDistanceExpense, #digitalImages, #milesReimbursment, #driveTime, #statementTranscription").keypress(function (event) { 

我的个人偏好与您在那里的第一个回应相似,但对我而言,其可读性更容易:

 var statement = con.createStatement ( 'select * from t where ' + '(t.a1 = 0 and t.a2 >=-1) ' + 'order by a3 desc limit 1' ); 

它与我近20年来使用的SQL语法格式非常相似:

 SELECT * FROM t WHERE t.a1 = 0 AND t.a2 >=-1 ORDER BY a3 DESC LIMIT 1 

在最右侧保持延续(在JavaScript中为+ ,或者在SQL中为AND )允许眼睛沿着左边缘均匀地滑动,检查左值和语法。 左侧的延续要稍微困难 – 除非你做了很多这种东西,这一点不重要,在这一点上你花的卡路里是可以通过略微改善格式而节省的卡路里。

由于这个查询非常简单,所以将其全部分解为SQL格式会浪费空间和带宽,这就是为什么build议的JavaScript是在六行而不是十行的原因。 将曲线折叠起来,每一行都将它带到四行,节省空白。 虽然不是很清楚或简单的编辑。

“+”用于string的连接,大多数例子都是用string处理的。 如果你有一个命令你需要跨越多行,例如复合“if”语句? 你需要在每一行的结尾处加一个反斜杠来延续。 这将转义不可见的下一行字符,以便它不会在中间语句中分隔命令。