こんな基本的なことで、つまずいてしまいました。
localStorageのあるキーの値を削除したいときは localStorage.removeItem を使いましょう。
nullやundefinedを代入しても、文字列扱いになってしまい条件分岐等に使ってると、気づきにくいです。。。

間違った方法
localStorage.hoge = 'buuu';
localStorage.hoge = null;    // 'null' が代入されてしまう
localStorage.hoge = undefined; // 'undefined' が代入されてしまう


正しい方法
localStorage.hoge = 'buuu';
localStorage.removeItem('hoge');