[解決済み] LocalStorageにboolean値を設定できない?
質問
でブーリアン値を設定できないことに気づきました。
localStorage
?
localStorage.setItem("item1", true);
alert(localStorage.getItem("item1") + " | " + (localStorage.getItem("item1") == true));
常にアラートを表示
true | false
をテストしようとすると
localStorage.getItem("item1") == "true"
という警告が出る.の項目を設定するにはどうしたらよいですか?
localStorage
を true に設定できますか?
たとえ文字列であっても、その中に含まれるのは
===
は型をチェックするのでしょうか?
だから
alert("true" == true); // should be true?
解決方法は?
Firefox の Storage の実装
は文字列しか保存できませんが
2009年9月
W3Cは、どんなデータでも受け入れるように草案を修正しました。
実装が(まだ)追いついていない
(
以下の編集を参照してください。
).
つまり、あなたの場合、booleanは文字列に変換されるのです。
なぜかというと
"true" != true
で書かれているように
の記述では、イコール(
==
)をMDCで使用することができます。
*:
2 つのオペランドが同じ型でない場合、JavaScript はオペランドを変換し、厳密な比較を適用します。オペランドが数値またはブーリアンである場合、オペランドは次のように変換されます。 数値 もしどちらかのオペランドが文字列であれば、もう一方のオペランドも文字列に変換されます。
なお、文字列が変換されるのは
番号
の代わりに
ブーリアン
. このため
"true"
を数値に変換したものは
NaN
の場合、何にも等しくならないので
false
が返されます。
(*: 実際の規格については、ECMA-262 §11.9.3 "The Abstract Equality Comparison Algorithm" を参照してください)
編集する
は
setItem
インタフェースで文字列のみを受け付けるように戻されました。
2011年9月第1草案
というのも、どのベンダも文字列でないものの保存をサポートすることに興味がないからです。参照
https://www.w3.org/Bugs/Public/show_bug.cgi?id=12111
をご覧ください。
関連
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] javascriptでlocalStorageをクリアする?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】オブジェクトの配列をプロパティ値でソートする
-
[解決済み] if文の中のブーリアン
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】Uncaught SyntaxError: JSON の位置 0 に予期しないトークン u があります。
-
[解決済み】Redux TypeError: 未定義のプロパティ 'apply' を読み取れない
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?