我在Ruby中有以下代码。我想把这段代码转换成JavaScript。JS中的等效代码是什么?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
我在Ruby中有以下代码。我想把这段代码转换成JavaScript。JS中的等效代码是什么?
text = <<"HERE"
This
Is
A
Multiline
String
HERE
当前回答
在Javascrip中创建多行字符串最简单的方法是使用反引号(``)。这允许您创建多行字符串,在其中可以插入带有${variableName}的变量。
例子:
let name='Willem';假设年龄=26岁;让multilineString=`我的名字是:${name}我的年龄是:${age}`;console.log(multilineString);
兼容性:
它在ES6//es2015中介绍现在,所有主要浏览器供应商(internet explorer除外)都支持它
在此处查看Mozilla文档中的确切兼容性
其他回答
ES6更新:
正如第一个答案所提到的,使用ES6/Babel,您现在只需使用反引号即可创建多行字符串:
const htmlString = `Say hello to
multi-line
strings!`;
内插变量是一个流行的新功能,带有反勾分隔字符串:
const htmlString = `${user.name} liked your post about strings`;
这只是将文件转换为串联:
user.name + ' liked your post about strings'
ES5原始答案:
谷歌的JavaScript风格指南建议使用字符串连接而不是转义换行:不要这样做:var myString='相当长的英文文本字符串,错误消息\事实上,这是一个错误\让精力充沛的兔子脸红的信息\那些施瓦辛格的阴影)!我在哪里?哦,是的\你有一个错误,所有多余的空格都是\只是肉汁。祝你今天愉快;在编译时,不能安全地删除每行开头的空白;斜杠后的空白将导致棘手的错误;虽然大多数脚本引擎都支持这一点,但它不是ECMAScript的一部分。请改用字符串串联:var myString='相当长的英文文本字符串,错误消息'+“事实上,这是一个错误”+“让Energizer兔子脸红的消息(直接通过)”+那些施瓦辛格的阴影)!我在哪里?哦,是的,”+'您有一个错误,所有多余的空格都是'+只是肉汁。祝你今天愉快;
还要注意,当在每行末尾使用前向反斜杠在多行上扩展字符串时,前向反斜线后面的任何额外字符(主要是空格、制表符和错误添加的注释)都会导致意外的字符错误,我花了一个小时才发现
var string = "line1\ // comment, space or tabs here raise error
line2";
ES6允许您使用反勾号在多行上指定字符串。它被称为模板文字。这样地:
var multilineString = `One line of text
second line of text
third line of text
fourth line of text`;
在NodeJS中使用backtick,Chrome、Firefox、Edge、Safari和Opera都支持它。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
实现这一点有多种方法
1.斜线拼接
var MultiLine= '1\
2\
3\
4\
5\
6\
7\
8\
9';
2.规则串联
var MultiLine = '1'
+'2'
+'3'
+'4'
+'5';
3.数组连接串联
var MultiLine = [
'1',
'2',
'3',
'4',
'5'
].join('');
就性能而言,斜杠串联(第一个)是最快的。
有关性能的更多详细信息,请参阅本测试用例
更新:
使用ES2015,我们可以利用其模板字符串功能。有了它,我们只需要使用反引号来创建多行字符串
例子:
`<h1>{{title}}</h1>
<h2>{{hero.name}} details!</h2>
<div><label>id: </label>{{hero.id}}</div>
<div><label>name: </label>{{hero.name}}</div>
`
总之,我在用户javascript编程(Opera 11.01)中尝试了两种方法:
这一个不起作用:在JavaScript中创建多行字符串这非常有效,我还找到了如何让它在Notepad++源代码视图中看起来很好:在JavaScript中创建多行字符串
所以我推荐Opera用户JS用户的工作方法。与作者所说的不同:
它不适用于萤火虫或歌剧;仅在IE、chrome和safari上。
它在歌剧11中确实有效。至少在用户JS脚本中。遗憾的是,我不能对个人答案发表评论,也不能对答案进行投票,我会立即这样做。如果可能,请有更高权限的人帮我做。