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

JavaScriptの厳密な等式演算子と緩い等式演算子の違いは何ですか?

JavaScriptの厳密な等式演算子と緩い等式演算子の違いと、それが重要である理由について説明します。

JavaScriptでは、2つの等式演算子を使用して値を比較できます。緩い等式演算子== (double equals)および厳密な等号演算子=== (トリプルは等しい)。表面上は同じように見えますが、そうではありません。違いを理解することが重要です。そうしないと、バグに遭遇する可能性があるからです。

コンソールで次のコードを実行してみてください:

let a = 4 // number
let b = "4" // string

console.log(a == b) // output: true

JavaScriptが上記がtrueであると言うのはなぜですか そうでないときは?タイプnumberの値があります タイプstringの値と比較されます —では、どうすればそれらを等しい値にすることができるでしょうか。

これは、緩い等式演算子==を使用する場合に発生するためです。 オペランドを同じに変換します (まだ入力していない場合)と入力し、それらの値を比較します。

このプロセスは型強制と呼ばれます (2つの値をで比較する場合 それらを共通のタイプに変換しようとしています。

したがって、上記の例では、trueの出力 値が比較される前に、それらの値タイプが同じになるように変換されるため、正しいです。

うわー、それはばかげている!

同意しますが、そうです。重要なのは、JavaScriptのこの不便な「癖」を認識していることです。

そして、そこで厳密な等式演算子 === 値型を変換しないため、入ってきて1日を節約します。厳密に 値の型を比較してから、等しいかどうかをチェックします:

let a = 4
let b = "4"

console.log(a === b)
// output: false

ここで、falseを取得します 、両方の変数(aとb)に値「4」が含まれているにもかかわらず、オペランドが異なる値タイプであるため(aは数値、bは文字列値)。

非厳密な==とは異なり 演算子、厳密な=== 演算子は予測可能な出力を提供します。そのため、ほとんどの開発者は==の使用を推奨していません。 。

正当な理由はありますかJavaScriptで非厳密な比較演算子を使用するには?

まれですが、いくつかの例を見つけることができると確信しています。経験則として、デフォルトでは厳密な===を使用します 明らかながない限り、等式演算子 非厳密な==を使用する理由 等式演算子。このようにして、間違った等式演算子を使用することによって引き起こされるコードのバグを除外できます。これは常にボーナスです。


  1. JavaScriptでの厳密な等式と緩い等式。

    緩い等式演算子 ‘==’を使用すると、最初に値を共通の型に変換してから、それらの値が等しいかどうかを確認することで、2つ以上のオペランドを比較できます。 厳密な等式演算子 ‘===’を使用すると、値とそのタイプが等しいかどうかを確認することで、2つ以上のオペランドを比較できます。値と型の両方が他のオペランドと一致する場合にのみtrueを返します。 以下は、JavaScriptでの緩い等式と厳密な等式のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q

  2. JavaScriptの緩い平等

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