Posted at

ECMAScriptで顔文字を使ってみる

More than 1 year has passed since last update.

PHPでバルス!って打つと強制終了する。キリッ(`・ω・´)



この記事で開かれたコーディングの新たな扉にECMAScriptで踏み入ってみました。


すること

ログ書き込み(console.log)を顔文字を使った式(こんなの→φ(・ω・))で表現する。


問題点


  • ECMAScriptにはdefineがない(元ネタはPHP)

  • 閉じ括弧())の後ろに書ける文字は限られている

この2つが解決できれば、さりげなく顔文字が溶け込んだコードが書けそうです。


解決策


文字列リテラルを使う

文字列リテラルのクオーテーション記号で目を表現すれば、口などの部分には自由に文字を使えます。目のレパートリーは少なくなりますが、この際それは我慢しましょう。

後は閉じ括弧の後ろの文字です。

φ('o')(ほげほげ)といった感じでできないこともありませんが、何となく見た目がスッキリしませんね。


そうだ、この手があった

ECMAScriptのテンプレート文字列の使い方の一つに、タグ付けされたテンプレートリテラルというのがあります。これを利用すると、関数`テンプレート文字列`という書き方ができます。

つまり、φ('o')`ほげほげ`といった記述が可能になるということです。


書いてみる

後は、関数φを適当に定義してやればいいですね。

const φ = _ => (strings, ...values) =>

console.log(strings.reduce((a, v, i) => a + values[i - 1] + v));


使ってみる

φ('ω')`Hello, world!`;

φ(`o`)`F*ck you!!!`;

//出力 (動作確認: Firefox)
//Hello, world!
//F*ck you!!!

きちんと出力できました。


まとめ

ECMAScriptでも顔文字は使えます。皆さんも色々なバリエーションを作ってみてください。