CoffeeScriptでif修飾子を使って値を返さないコードを書く

JavaScriptCanvasに対応してない時に書くようなコード。

if (!HTMLCanvasElement) {
  return;
}

CoffeeScriptでif修飾子を使って書くやり方がわからなかったけど、ようやくかけたのでメモ。

return undefined if not HTMLCanvasElement

undefinedをreturnしてあげればいいわけね。まあ、戻り値を書かない関数は戻り値がundefinedになるけどさあ……
今までわからなかったのでとりあえず

return false if not HTMLCanvasElement

と書いていたのですよ。でも、これだと

if (!HTMLCanvasElement) {
  return false;
}

になってしまうので意味が変わってしまうと。


まあ……グローバルスコープ直下の即時関数内だからどちらでも特に問題はないんだろうけど。
と、思うんだけどなあ……


追記:
id:murky-satyrさんにコメントで教えてもらった!

return unless HTMLCanvasElement?

unlessの存在を忘れてた…… あと?も。
HTMLCanvasElementを持っているブラウザでしか確認していなかったから、古いブラウザでエラーが出るってのに気がつかないなんて、ああ情けない。

if (typeof HTMLCanvasElement === "undefined" || HTMLCanvasElement === null) {
  return;
}

コンパイルされるとこんな感じ。これを見るとJavaScript書きたくなくなるかも。