質問: hasLocalStorage( 'デカい値' ); console.log( '判定結果', hantei ); // 「入りきらなかったこと」を判定して処理を分けたい if ( hantei ) { // 入りきったときの処理 }else{ // 入りきらなかったときの処理 } }); // 「そのキーへアクセスできること」を判定 function hasLocalStorage( checkKey ) { try { window.localStorage.setItem(checkKey, 1); window.localStorage.getItem(checkKey); return true; } catch(e) { return false; } } ```
回答: 既にベストアンサーがついていますが、makosankibuさんが指摘されているように、どのみち例外が発生するわけですから、try ~ catch を使わないと処理が継続できません。そして、どうせ try ~ catch を書くのであれば、わざわざサイズのチェックなどしなくても、catchの時点で「書き込めなかった」ことがわかります。 ということで、少なくとも try ~ catch は必須です。 それと、質問者さんはコードを動かしてみたのでしょうか。実際に大きなデータを入れてみれば、例外が発生することはすぐに分かると思います。