ECMAScript
ネタ
顔文字

ECMAScriptで顔文字を使ってみる

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でも顔文字は使えます。皆さんも色々なバリエーションを作ってみてください。