JavaScript で文字列の同等性を確認する

Sahil Bhosale 2023年10月12日
  1. JavaScript で文字列の等式に演算子を使用する場合
  2. 例を使用して JavaScript の文字列の同等性を理解する
JavaScript で文字列の同等性を確認する

JavaScript には、文字列の同等性をチェックするために使用できる 4つの演算子があります。これらの演算子は比較演算子と呼ばれます。

  1. 厳密な等号(===):厳密な等号(トリプル等号演算子とも呼ばれます)は、変数の値とそのデータ型をチェックします。これらの両方が等しい場合は、true のみを返し、そうでない場合は false を返します。
  2. 厳密に等しくない(!==):これは厳密に等しいの反対です。値またはデータ型のいずれかが一致しない場合、true を返します。それ以外の場合は、false
  3. 等しい(==):二重等号は変数の値のみをチェックします。値が一致する場合は true を返し、一致しない場合は false を返します。変数の型は関係ありません。
  4. 等しくない(!=):これは等しい(==)の反対です。データ型に関係なく、変数内の値が一致しない場合にのみ true を返します。値が互いに一致する場合、false を返します。

これらの演算子は、文字列の同等性をチェックするためだけでなく、他のデータ型の同等性をチェックするためにも使用されます。これらの 4つの演算子から、ユースケースに応じて文字列の同等性をチェックするのに最適な演算子を見つけましょう。

3 番目と 4 番目の演算子、つまり ==!= は、他のプログラミング言語でもかなり一般的です。ただし、JavaScript での動作方法は、他の言語とは少し異なります。

JavaScript で文字列の等式に演算子を使用する場合

JavaScript に関連して、以下は === または == 演算子のいずれかを使用できるいくつかのユースケースです。

  • 比較する値が true または false のいずれかの値である可能性がある場合は、== ではなく === を使用してください。
  • 比較する値がこれらの特定の値(0""、または []-空の配列)のいずれかである可能性がある場合は、== の代わりに === を使用します。
  • それ以外の場合は、== を使用しても安全です。安全であるだけでなく、コードを簡素化し、読みやすさを向上させます。

Strict not equal(!==)および Not equal(!=)演算子を使用する場合も、上記と同じルールが適用されます。特定のルールの詳細については、ES5 仕様の 11.9.3セクションを参照してください。

例を使用して JavaScript の文字列の同等性を理解する

いくつかの例を取り上げて、これらのことを詳しく理解しましょう。

この例では、name_1name_2 の 2つの変数を使用しています。どちらも文字列値として"adam"を取ります。次に、上記の各演算子を適用して、得られる出力を見てみましょう。

ここでは、それぞれ異なる比較演算子を表す 4つの if および else ステートメントを使用しました。name_1 変数と name_2 変数の値とデータ型は同じであるため、トリプルイコールまたは厳密なイコール演算子(===)は出力として True を出力します。また、両方の変数の値が同じであるため、二重に等しい ==True を出力します。

let name_1 = 'adam';
let name_2 = 'adam';

// Strict Equal
if (name_1 === name_2)
  console.log('True');
else
  console.log('False');

// Equal
if (name_1 == name_2)
  console.log('True');
else
  console.log('False');

// Strict not equal
if (name_1 !== name_2)
  console.log('True');
else
  console.log('False');

// Not equal
if (name_1 != name_2)
  console.log('True');
else
  console.log('False');

出力:

True
True
False
False

Strict not equal(!==)演算子と not equal(!=)演算子を使用すると、値自体が両方の変数で同じであるため、両方とも出力として False を出力します。

以下は、文字列と整数を比較する別の例です。ここでは、文字列値である"80"の値を持つ変数 str があります。別の変数 num があり、これには"80"の整数値が含まれています。これらの変数は両方とも異なるデータ型で同じ値を持っているので、それらにさまざまな比較演算子を使用するとどうなるか見てみましょう。

let str = '80';
let num = 80;

// Strict Equal
if (str === num)
  console.log('True');
else
  console.log('False')

  // Equal
  if (str == num) console.log('True');
else console.log('False')

// Strict not equal
if (str !== num) console.log('True');
else console.log('False')

// Not equal
if (str != num) console.log('True');
else console.log('False')

出力:

False
True
True
False

最初の例と同様に、4つの if ステートメントと else ステートメントもあり、それぞれが異なる比較演算子を表しています。

Strictequals または tripleequals(===)を使用している場合、出力として False が得られます。その理由は、値が同じでもデータ型が異なるためです。ただし、double equals(==)を使用すると、出力として True が得られます。doubleequals は値のみをチェックし、タイプはチェックしないためです。

また、Strict not equal(!==)を使用している場合、文字列値"80"が整数値 80 と等しくないため、出力として True が取得されます。したがって、True を返します。

最後に、等しくない(!=)演算子は、2つの変数の値のみを比較します。True を出力するには、値が異なる必要があります。この場合、値は同じであるため、False を返します。

著者: Sahil Bhosale
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

関連記事 - JavaScript String