Mat*_*ett 4 javascript string ecmascript-6
我正在尝试连接一堆字符串以在Javascript中构建查询字符串.以前我通过丑陋的字符串连接实现了这个目的:
var queryString = "?action=" + actionValue + "&data=" + dataValue";
Run Code Online (Sandbox Code Playgroud)
但是使用ES6,我发现有一些新方法可以帮助我用更好看的代码实现相同的结果,比如C#6中的字符串插值:
string s = $"action={actionValue}&data={dataValue}"
Run Code Online (Sandbox Code Playgroud)
我已经使用默认模板文字进行了测试,String.raw虽然每个模板的语法略有不同,但它们都有效.我倾向于String.raw在我的最终副本中使用,因为它不允许对字符串进行标记,因此将来会像默认模板文字一样进行修改.
虽然它确实在MDN文档中说String.raw基本上调用默认模板文字方法,但我喜欢String.raw更好的语法...我在String.join我的字符串的花括号内调用我正在格式化的方法,所以也许这是一个误用String.raw.
是否有任何ES6向导可以启发我并提供一个优于另一个的理由?
我的代码:
var defaultTemplateStringUrl = `@Url.Action("DownloadMultiple")?inIds=${inData.join(',')}&outIds=${outData.join(',')}&truckId=${truckId}`;
var rawStringUrl = String.raw `@Url.Action("DownloadMultiple")?inIds=${inData.join(',')}&outIds=${outData.join(',')}&truckId=${truckId}`;
window.open( /*url goes here*/);
Run Code Online (Sandbox Code Playgroud)
模板文字生成一个字符串.如果您使用String.raw,您将获得该字符串的原始形式:
`a\tb`; // "a b"
String.raw`a\tb`; // "a\tb"
Run Code Online (Sandbox Code Playgroud)
所以你应该String.raw只在你想要原始形式时使用.
| 归档时间: |
|
| 查看次数: |
509 次 |
| 最近记录: |