JavaScriptで文字列と真偽値(Boolean)を比較する方法をわかりやすく解説
JavaScriptにおける文字列と真偽値の比較
JavaScriptで文字列と真偽値(Boolean)を比較する場合、等価演算子 == を使うと、型が異なる値同士でも自動的に型変換(型強制)が行われて比較されます。そのため、直感に反する結果になることがあります。以下の例を見てみましょう。
true を返す比較の例
false == "0"; // true true == "1"; // true false == ""; // true
これらの式が true を返すのは、比較の際にまず真偽値が数値へ変換されるためです。false は 0 に、true は 1 に変換されます。さらに、文字列も数値へ変換されてから比較されます。"0" は 0、"1" は 1、空文字列 "" は 0 とみなされるため、上記の結果になります。
false を返す比較の例
false == "false"; // false true == "true"; // false
一方で、"false" や "true" といった文字列は数値に変換すると NaN になるため、0 や 1 とは一致せず、結果は false となります。文字列としての「false」「true」は、真偽値としては扱われない点に注意が必要です。
厳密等価演算子 === を使った比較
より安全な比較を行いたい場合は、厳密等価演算子 === を使うか、明示的に型変換を行いましょう。次の例を試してみてください。
var data = true; data === "true"; // false(型が異なるため一致しない) String(data) === "true"; // true(真偽値を文字列に変換してから比較)
=== は型変換を行わず、値と型の両方が一致した場合のみ true を返します。そのため、真偽値と文字列を直接比較しても false になります。String() 関数を使って真偽値を文字列に変換してから比較すれば、意図した通りの結果が得られます。
まとめ
==による比較では、暗黙的な型変換が行われるため、予期しない結果になることがある。- 真偽値は数値(
true→ 1、false→ 0)に変換されてから比較される。 - バグを防ぐためには、厳密等価演算子
===の使用やString()による明示的な型変換が推奨される。
-
JavaScriptで文字列を真偽値(Boolean)に変換する方法
JavaScriptでは、文字列が「true」というリテラルと一致するかどうかを比較演算子で判定することで、文字列を実質的に真偽値(Boolean)として扱うことができます。ここでは、==(緩い等価比較)と===(厳密等価比較)の2つの方法を使った具体例を紹介します。 サンプルコード <!DOCTYPE html> <html> <head> <style> body { font-family: &
-
C#で文字列を初期化・比較する方法をわかりやすく解説
C#における文字列の初期化は非常に簡単です。ここでは、文字列の初期化方法と、2つの文字列を比較するための基本的な手法について解説します。文字列の初期化たとえば、「Hello, World!」という文字列を変数に格納したい場合は、次のように初期化します。String str1 = Hello, World!;このように、ダブルクォーテーションで囲んだ文字列リテラルを代入するだけで、文字列型の変数を初期化できます。文字列の比較には String.Compare メソッドを使うC#で2つの文字列を比較するには、String.Compare メソッドを使用します。このメソッドのシグネチャは以下のとおり