文本编辑器换行符是否在javascript中结束字符串内容?

文本编辑器换行符是否在javascript中结束字符串内容?,javascript,text-editor,line-breaks,Javascript,Text Editor,Line Breaks,在以下脚本[脚本片段]中 document.write( '<div class="user-info-wrap"> <div class="user-info-left">' document.write( ' ' 我的文本编辑器停止对第三行着色,就好像它不包含在单引号中一样。文本编辑器换行符是否结束(javascript字符串)引号内容 如果是这样的话,这就意味着我需要做下面的事情,在我看来,这似乎没有意义,所以可能是文本编辑器的着色示意图出错了

在以下脚本[脚本片段]中

document.write(
    '<div class="user-info-wrap">
    <div class="user-info-left">'
document.write(
'
'
我的文本编辑器停止对第三行着色,就好像它不包含在单引号中一样。文本编辑器换行符是否结束(javascript字符串)引号内容

如果是这样的话,这就意味着我需要做下面的事情,在我看来,这似乎没有意义,所以可能是文本编辑器的着色示意图出错了

 document.write(
     '<div class="user-info-wrap">' +
     '<div class="user-info-left">'
document.write(
'' +
''

它是哪一个?

更新

随着ECMAScript版本6(ES6)现在成为所有主流浏览器的标准,您不再需要执行转义技巧。这只是ES5的一个“技巧”。向前看,您只需将字符串包装在两个回标记内即可

var multiStr=`这是第一行
这是第二行
这更…`;

2014年左右的原始答复 您可以执行以下两种操作之一:

连接:

var multiStr=“这是第一行”+
“这是第二行”+
“这更……”;
转义:

var multiStr=“这是第一行\
这是第二行\
这是更多的……”;
两种输出:

这是第一行这是第二行这更


注意:使用转义方法时,不会忽略连续行上的前导空格

var multiStr = "This is the first line \
    This is the second line \
    This is more...";
这将输出:

这是第一行这是第二行这更


回答你的问题:

并非所有文本编辑器都支持JavaScript多行字符串高亮显示。Notepad++处理得相当好,而VI/VIM不会以红色显示整个字符串。VI/VIM只知道如何高亮显示与开头引号所在行相同的字符串。如果您注意到,VI/VIM认为您创建了一个新字符串(在最后一行)第一个字符是分号。这不是真的,这只是编辑器突出显示的一个缺陷


更新

随着ECMAScript版本6(ES6)现在成为所有主流浏览器的标准,您不再需要执行转义技巧。这只是ES5的一个“技巧”。向前看,您只需将字符串包装在两个回标记内即可

var multiStr=`这是第一行
这是第二行
这更…`;

2014年左右的原始答复 您可以执行以下两种操作之一:

连接:

var multiStr=“这是第一行”+
“这是第二行”+
“这更……”;
转义:

var multiStr=“这是第一行\
这是第二行\
这是更多的……”;
两种输出:

这是第一行这是第二行这更


注意:使用转义方法时,不会忽略连续行上的前导空格

var multiStr = "This is the first line \
    This is the second line \
    This is more...";
这将输出:

这是第一行这是第二行这更


回答你的问题:

并非所有文本编辑器都支持JavaScript多行字符串高亮显示。Notepad++处理得相当好,而VI/VIM不会以红色显示整个字符串。VI/VIM只知道如何高亮显示与开头引号所在行相同的字符串。如果您注意到,VI/VIM认为您创建了一个新字符串(在最后一行)第一个字符是分号。这不是真的,这只是编辑器突出显示的一个缺陷


Javascript不允许不转义的多行字符串。因此,这不起作用:

var foo = "bar
bar";
可以将整个字符串放在一行上,如:

var foo = "bar\nbar"; // includes the line break
或者您可以使用
\
来避免换行,如下所示:

var foo = "bar\
bar";
var foo = "bar \
bar";

var foo = "bar\n\
bar";
var foo = "bar"
+"bar";
在后一个示例中,
foo
barbar
(无换行符)。您可以手动添加空格或换行符,如下所示:

var foo = "bar\
bar";
var foo = "bar \
bar";

var foo = "bar\n\
bar";
var foo = "bar"
+"bar";
请注意,
\
之后的行中的任何前导空格都不会被忽略,因此:

var foo = "bar\
    bar";
给出
foo

bar     bar
当然,您可以将字符串的各个部分连接起来,如下所示:

var foo = "bar\
bar";
var foo = "bar \
bar";

var foo = "bar\n\
bar";
var foo = "bar"
+"bar";

Javascript不允许不转义的多行字符串。因此,这不起作用:

var foo = "bar
bar";
可以将整个字符串放在一行上,如:

var foo = "bar\nbar"; // includes the line break
或者您可以使用
\
来避免换行,如下所示:

var foo = "bar\
bar";
var foo = "bar \
bar";

var foo = "bar\n\
bar";
var foo = "bar"
+"bar";
在后一个示例中,
foo
barbar
(无换行符)。您可以手动添加空格或换行符,如下所示:

var foo = "bar\
bar";
var foo = "bar \
bar";

var foo = "bar\n\
bar";
var foo = "bar"
+"bar";
请注意,
\
之后的行中的任何前导空格都不会被忽略,因此:

var foo = "bar\
    bar";
给出
foo

bar     bar
当然,您可以将字符串的各个部分连接起来,如下所示:

var foo = "bar\
bar";
var foo = "bar \
bar";

var foo = "bar\n\
bar";
var foo = "bar"
+"bar";

是PHP连接…哦,d*mnit哈哈,我现在正在使用这两种语言。编辑它到+sunlike PHP,单引号和双引号在JS中的作用完全相同。如果您想要多行字符串而不转义或连接,可以使用多行(css样式)注释。
是PHP连接…噢,d*mnit哈哈,我现在正在使用这两种语言。将其编辑为+sunlike PHP,单引号和双引号在JS中的作用完全相同。如果您想要多行字符串而不转义或连接,可以使用多行(css样式)comments.VIM没有在那里显示字符串的终止。最后一个
显示为另一个字符串,请注意分号也是红色的。很抱歉,我很少在JavaScript中使用VI。我只是把它作为一个示例,不完全理解它如何处理JS。VIM没有在那里显示字符串的终止。最后一个
显示为另一个字符串,请注意分号也是红色的。很抱歉,我很少在JavaScript中使用VI。我只是把它作为一个示例,不完全理解它如何处理JS。