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で非厳密な比較演算子を使用するには?
まれですが、いくつかの例を見つけることができると確信しています。経験則として、デフォルトでは厳密な===
を使用します 明らかながない限り、等式演算子 非厳密な==
を使用する理由 等式演算子。このようにして、間違った等式演算子を使用することによって引き起こされるコードのバグを除外できます。これは常にボーナスです。
-
JavaScriptでの厳密な等式と緩い等式。
緩い等式演算子 ‘==’を使用すると、最初に値を共通の型に変換してから、それらの値が等しいかどうかを確認することで、2つ以上のオペランドを比較できます。 厳密な等式演算子 ‘===’を使用すると、値とそのタイプが等しいかどうかを確認することで、2つ以上のオペランドを比較できます。値と型の両方が他のオペランドと一致する場合にのみtrueを返します。 以下は、JavaScriptでの緩い等式と厳密な等式のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q
-
JavaScriptの緩い平等
緩い等式演算子「==」を使用すると、最初に値を共通の型に変換してから、それらの間の等式をチェックすることにより、2つ以上のオペランドを比較できます。 以下は、JavaScriptで緩い等式を実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-sc