JavaScriptを使ったハンバーガーメニューなどの実装で、メニューの表示・非表示の切り替えの際に真偽値フラグを使うことが多いのだが、最近知った簡単なフラグの切り替え方法について紹介する。

初歩的な切り替え方

if文を使った初歩的な切り替え方を見てみよう。

var flg = false;

if(flg) {
	flg = false;
} else {
	flg = true;
}

フラグの切り替えだけで、こんなに長いコードを書かなければならない。

これをもっとシンプルに書いてみる。

if文要らず たった一行で切り替える方法

真偽値反転の「!」を使うことで、先述の長いコードをたった一行にまとめることができる。

var flg = false;

flg = !flg;

これを応用し、メニューの表示・非表示処理を書いてみた。

var menu = $('#menu-btn');
var menuOpenFlg = false;

menu.on('click', function(){
	if(menuOpenFlg = !menuOpenFlg) {
		$('#menu').fadeIn(200);
	} else {
		$('#menu').fadeOut(200);
	}
	return false;
});

メニュー展開だけでなく、あらゆる場面で使いやすそうなコードだ。