//ルートにアクセスされたら/archiveにリダイレクトする

エイリーの備忘録

開発や音楽について書いていこうと思っています。

JavaScriptでNull合体演算子

日頃jsのコードを書いていて、null合体演算子を使いたいと感じたことはないでしょうか? 例えば、

var hoge = null;
var fuga = hoge === null ? 'nullの時の値' | hoge;

上記例のfugaに値を入れるときに2回もhogeと書かないといけないのはイケてないですよね? ですので、こういうときのためにnull合体演算子が用意されています。

書き方

var hoge = null;
var fuga = hoge || 'nullの時の値';

この時にfugaに入っている値は nullの時の値 という文字列が挿入されています。

実証

ここでの実証はchromeのデバッガを使用しています。

// nullの時の値が挿入される
var hoge = null;
console.log(hoge || 'nullの時の値'); // nullの時の値

hoge = undefined;
console.log(hoge || 'nullの時の値'); // undefined

// hogeの値が挿入される
hoge = '適当な値';
console.log(hoge || 'nullの時の値'); // 適当な値

hoge = 1234;
console.log(hoge || 'nullの時の値'); // 1234

hoge = {};
console.log(hoge || 'nullの時の値'); // {}

感想

なんでjsの場合は || でnull合体演算子の挙動が出来るんだろう?・・・ (正直OR演算をしているようにしか見えないので可読性が低い気がする・・・)