E4Xで変数展開、テンプレート
var foo=123; <>変数fooは{foo}です。</>.toString();//"変数fooは123です。"
{や}という文字を入れたい場合は、実体参照にするか、CDATAセクションに入れる必要がある。{}内には、変数だけじゃなくて式とかも入れられる。
javascript:void prompt('コピーしてください',Array.map(prompt(),function(c)'&#'+c.charCodeAt(0)+';').join(''));
javascript:void prompt('コピーしてください',prompt().replace(/&#(\d+?);/g,function(i,str)String.fromCharCode(str)));
速度について。
console.time('e4x') for(var i=0;i<1000;i++) <>1+1={1+1}</>.toString(); console.timeEnd('e4x'); console.time('+') for(var i=0;i<1000;i++) '1+1='+(1+1); console.timeEnd('+');
e4x: 14ms
+: 4ms
e4xのほうが遅いのだけど、1000回やって14msだから気にするほどではない。+でたくさん連結する場合はむしろE4Xのほうが速い。
関連: