Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScript:等式演算子

JavaScriptで同等性を比較する方法は4つあります。この記事では、等式を決定するために使用される一意の演算子、型強制とは何か、JavaScript言語で真または偽の値を評価するときに遭遇するいくつかの特異性について説明します。

厳密な同等性の比較

厳密な等号演算子は、トリプル等号(===)で表されます。この演算子の目的は、値だけでなくその型も比較することです。

const strictComparison = (a, b) => {
 console.log(typeof a);
 console.log(typeof b);
 return a === b;
}
 
strictComparison(8, '8'); //false

strictComparison 上記の例の関数は、2つの値を取り込んで、2つの値が厳密に互いに等しいかどうかを返します。

一見すると、値は両方とも値 8 であるため、同じように見えます。 。ただし、厳密な等式演算子は型も調べます。 aを見ると この場合、を見てください タイプの ‘number’を返します 。 bに対して同じことを行う場合 typeof bを使用 ‘string’を返します 。

タイプが同じではないため、 falseを返します。 。

===

との異常な比較

JavaScriptのstrictequal演算子を使用して行うことができるいくつかの珍しい比較があります。面接の状況でよく聞かれる質問は次のとおりです。

Operand1 typeof Operand1 Operand2 typeof Operand2 戻り値
null オブジェクト null オブジェクト true
未定義 未定義 未定義 未定義 true
null オブジェクト 未定義 未定義 false
NaN 番号 NaN 番号 false
false ブール値 「false」 文字列 false
false ブール値 false ブール値 true
“” 文字列 “” 文字列 true
“” 文字列 未定義 未定義 false

注意すべきもう1つのことは、これはデータ構造との比較を行わないということです。配列またはオブジェクトを比較するには、より高度なステートメントを使用する必要があります。

ここのエントリのほとんどは、タイプが一致するか一致しないため、その方法を評価します。唯一の例外はNaNです –これは falseと評価されます NaNという事実のため 理論的には何でもかまいません。したがって、それが等しいかどうかはわかりません。したがって、falseと評価されます。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

厳密な不等式の比較

厳密な不等式演算子は、感嘆符と2つの等号(!==)で表されます。 2つの値の値とタイプが等しくないかどうかを評価します。

const strictInequalityComparison = (a, b) => {
 console.log(typeof a);
 console.log(typeof b);
 return a !== b;
}
 
strictInequalityComparison("8", 8); //true

strictInequalityComparison 上記の例の関数は、2つの値を取り込んで、2つの値が厳密に互いに等しくないかどうかを返します。

一見すると、両方の値が同じであるため、値は等しく見えます(等しくないわけではありません)。ただし、厳密な等式演算子と同様に、厳密な不等式演算子も型を調べます。

aを見ると この場合、 typeof aを見てください。 ‘string’を返します 。 bに対して同じことを行う場合 typeof bを使用 ‘number’を返します 。タイプが同じではないため、を返します。 true

!==

との異常な比較

JavaScriptの厳密な不等式演算子を使用して行うことができるいくつかの珍しい比較があります。面接の状況でよく聞かれる質問は次のとおりです。

Operand1 typeof Operand1 Operand2 typeof Operand2 戻り値
null オブジェクト null オブジェクト false
未定義 未定義 未定義 未定義 false
null オブジェクト 未定義 未定義 true
NaN 番号 NaN 番号 true
false ブール値 「false」 文字列 true
false ブール値 false ブール値 false
“” 文字列 “” 文字列 false
“” 文字列 未定義 未定義 true

厳密な等式演算子の場合と同様に、オブジェクト間または配列間で比較を行うことはできません。

もう1つ…

JavaScript開発のキャリアにおけるほとんどの状況では、これらの2つの演算子、===と!==が、条件付きロジックを作成するための演算子になります。

緩い等式の比較

緩い等号演算子は、二重等号(==)で表されます。この演算子の目的は、等しいかどうかを評価する前に、両方の値を共通の型に強制変換することです。これは型強制と呼ばれます または型変換

const looseComparison = (a, b) => {
 console.log(typeof a);
 console.log(typeof b);
 return a == b;
}
 
strictComparison(8, '8'); //true

looseComparison 上記の例の関数は、2つの値を取り込んで、2つの値が互いに大まかに等しいかどうかを返します。

一見すると、1つは数値で、もう1つは文字列であるため、値は同じようには見えません。ただし、ルーズイコリティ演算子は型を調べません。このステートメントは、値を比較する前に型が同じになるように強制しようとします。したがって、2番目のオペランドが数値に変換されてから比較されるため、例はtrueを返します。

==

との異常な比較

JavaScriptのstrictequal演算子を使用して行うことができるいくつかの珍しい比較があります。面接の状況でよく聞かれる質問は次のとおりです。

Operand1 typeof Operand1 Operand2 typeof Operand2 戻り値
null オブジェクト null オブジェクト true
未定義 未定義 未定義 未定義 true
null オブジェクト 未定義 未定義 true
NaN 番号 NaN 番号 false
false ブール値 「false」 文字列 false
false ブール値 false ブール値 true
“” 文字列 “” 文字列 true
“” 文字列 未定義 未定義 false

ここでのエントリのほとんどは、厳密な等式に関する最初のセクションで行ったのと同じように評価されます。注目すべき例外は、 null および未定義 大まかに比較すると、trueと評価されます。

緩い不等式の比較

緩い不等式演算子は、感嘆符と1つの等号(!=)で表されます。 2つの値が値だけで等しくないかどうかを評価します。これは、両方の引数を同じ型に変換しようとすることによって行われます。

 const looseInequalityComparison = (a, b) => {
 console.log(typeof a);
 console.log(typeof b);
 return a != b;
}
 
looseInequalityComparison("8", 8); //false

looseInequalityComparison 上記の例の関数は、2つの値を取り込んで、2つの値が互いに大まかに等しくないかどうかを返します。

一見、値は同じであるため、同じように見えます。ただし、緩い不等式演算子は、緩い等式演算子と同様に、比較の前に両方のオペランドで型が同じになるように強制します。強制後の値は同じであるため、 falseを返します。 。

!=

との異常な比較

JavaScriptの緩い不等式演算子を使用して行うことができるいくつかの珍しい比較があります。面接の状況でよく聞かれる質問は次のとおりです。

Operand1 typeof Operand1 Operand2 typeof Operand2 戻り値
null オブジェクト null オブジェクト false
未定義 未定義 未定義 未定義 false
null オブジェクト 未定義 未定義 false
NaN 番号 NaN 番号 true
false ブール値 「false」 文字列 true
false ブール値 false ブール値 false
“” 文字列 “” 文字列 false
“” 文字列 未定義 未定義 true

厳密な等式演算子の場合と同様に、オブジェクト間または配列間で比較を行うことはできません。

ここでのエントリのほとんどは、厳密な不等式に関する2番目のセクションで行ったのと同じように評価されます。注目すべき例外は、 null および未定義 大まかに比較すると、falseと評価されます。

結論

この記事では、JavaScriptで同等性を比較する4つの方法について説明しました。覚えておくべき主なことは、トリプルイコール(===)とダブルイコール(==)は同じ演算子ではないということです。 1つはタイプと値を厳密に評価し、もう1つは両方を同じタイプに強制しようとした後にのみ値を評価します。


  1. JavaScriptの緩い平等

    緩い等式演算子「==」を使用すると、最初に値を共通の型に変換してから、それらの間の等式をチェックすることにより、2つ以上のオペランドを比較できます。 以下は、JavaScriptで緩い等式を実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-sc

  2. JavaScriptで誤った値を特定する

    JavaScriptでは、ブール型-false として評価されると、次の値がfalseと評価されます。 0 空の文字列: 、、または `` null 未定義 NaN —数値ではありません 以下は、JavaScriptで偽の値を識別するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="widt