JavaScript で文字列をブール値に変換するにはどうすればいいですか? 質問する

JavaScript で文字列をブール値に変換するにはどうすればいいですか? 質問する

ブール値 (例: 'true'、'false') を表す文字列を JavaScript の固有型に変換できますか?

リスト内のユーザーの選択に基づいて更新される HTML の隠しフォームがあります。このフォームにはブール値を表すフィールドがいくつか含まれており、固有のブール値が動的に入力されます。ただし、この値が隠し入力フィールドに配置されると、文字列になります。

フィールドのブール値を文字列に変換した後にそのブール値を決定するために私が見つけた唯一の方法は、その文字列表現のリテラル値に依存することでした。

var myValue = document.myForm.IS_TRUE.value;
var isTrueSet = myValue == 'true';

これを実現するより良い方法はありますか?

ベストアンサー1

する:

var isTrueSet = (myValue === 'true');

同一性演算子 ( ===) を使用します。比較する変数の型が異なる場合でも、暗黙的な型変換は行われません。

文字列が「true」の場合はisTrueSetブール値に設定され、文字列が「false」またはまったく設定されていない場合はブール値になります。truefalse

大文字と小文字を区別しないようにするには、次を試してください。

var isTrueSet = /^true$/i.test(myValue);
// or
var isTrueSet = (myValue?.toLowerCase?.() === 'true');
// or
var isTrueSet = (String(myValue).toLowerCase() === 'true');

してはいけないこと:

特定のニーズに合わせてこれら 2 つの方法を使用する場合は、注意が必要です。

var myBool = Boolean("false");  // == true

var myBool = !!"false";  // == true

これらを使用すると、空文字列ではない文字列はすべて に評価されますtrue。ブール値変換に関して私が考えられる最もクリーンな方法ではありますが、探しているものではないと思います。

おすすめ記事