soak operatorというものを使うとnullを安全に扱えるようになる。
例
hoge = null
console.log hoge
# 値が代入されているかチェック(nullの場合はfalse)
console.log hoge?
# 値が代入されていない場合の初期値を返す
console.log hoge ? 'nullだよ'
# 初期値を代入(?=で値が未設定時の初期値を代入できる)
hoge ?= '初期値'
console.log hoge
# 値が設定されている場合は変わらない
hoge ?= '値は変わらない'
console.log hoge
JavaScriptへの変換結果
JavaScriptへ変換した結果。if文でうまいことnullが考慮されている。
// Generated by CoffeeScript 1.6.3
(function() {
var hoge;
hoge = null;
console.log(hoge);
console.log(hoge != null);
console.log(hoge != null ? hoge : 'nullだよ');
if (hoge == null) {
hoge = '初期値';
}
console.log(hoge);
if (hoge == null) {
hoge = '値は変わらない';
}
console.log(hoge);
}).call(this);