Firefox 33 で ES6 の TemplateLiteral の一部が実装された
- 1021368 - Implement NoSubstitutionTemplate as described in ES6 draft 11.8.6
- 11.8.6 Template Literal Lexical Components
ついにきた。
「JavaScript にはヒアドキュメントがない」などと言われてきた。そんなディスりとはおさらばだ。
JavaScriptの文字列リテラルは"
や'
でくくることだった。が、これらで複数行を実現するには少々面倒であった。
しかし、今回の実装でもう一つ、`
(バッククォート)でくくるという表現ができるようになった。
var str = `a
b
c
d`;
と書けるようになる。
TemplateLiteralには他にも機能があるのだが、今回の実装はここまで。
最終的には、以下の様に、${}
内に式を埋め込めたり、関数`...`
という記述で関数に値を渡すことができるようになるはず。
var obj = { tag: "p", class: "fooClass" }; html`<${obj.tag} class="${obj.class}">hoge foo bar</${obj.tag}>` // <p class="fooClass">hoge // foo // bar</p>
追記(2014-06-25)
${expr}
による、式の埋め込みが実装された。