JSにおける合同と不等式、等式と不等式の問題について

JSにおける合同と不等式、等式と不等式の問題について

一致と不一致

シンボルの両側のオペランドの比較は、演算子と同じです。たとえば、オペランドが等しい場合は true を返し、そうでない場合は false を返します。等価演算子と不等価演算子は、等価性を比較するときにオペランドを変換しません。つまり、変換せずに等価性または不等性を直接比較します。

一致する

記号: ===

str1="1" とします
str2=1とする
console.log(str1===str2) //偽

すべてが平等ではない

シンボル:! ==

str1="1" とします
str2=1とする
console.log(str1!==str2) //true

平等と不平等

等価演算子と不等価演算子も 2 つのオペランドを比較します。たとえば、等価演算子は 2 つのオペランドが等しい場合は true を返し、そうでない場合は false を返します。ただし、等価演算子と不等価演算子の違いは、等価演算子と不等価演算子は最初にオペランドに対して強制的な型変換を実行し、次に変換されたオペランドを比較することです。

等しい

記号: ==

str1="1" とします
str2=1とする
console.log(str1==str2) //true
console.log(str1===str2) //偽
フラグをtrueにする
num=1とする
console.log(フラグ==数値) //true
console.log(フラグ===数値) //false

等しくない

シンボル:! =

str1="1" とします
str2=1とする
str3="hello" とします
console.log(str1!=str2) //false 最初に型変換を行い、次に比較を行います。 console.log(str1!==str2) //true 等価演算の場合、強制型変換を行わないと、2 つのオペランドは必ずしも等しくなりません。	
console.log(str2!=str3) //true	  
console.log(str2!==str3) //true

等価演算子と不等価演算子のオペランドの型変換の規則は次のとおりです。

ブール値は比較のために数値に直接変換されます:false:0、true:1

文字列が数値に遭遇すると、数値に変換されて比較されます。

オブジェクトの場合、両方のオペランドがオブジェクトであれば、それらが同じオブジェクトであるかどうかを比較します。 2 つのオペランドが同じオブジェクトを参照している場合は true を返し、そうでない場合は false を返します。オペランドの1つがオブジェクトの場合、valueOfメソッドが呼び出されて元の値が取得され、比較が実行されます(上記のルールに従って)。

const p = new Object('zhangsan') // const p = new String('zhangsan') と同等
console.log(p.valueOf() == 'zhangsan') //true
console.log(p == 'zhangsan') //true
const p1={name:'zhangsan'}
p2=p1とする
console.log(p1==p2) //true
p2 = {}
console.log(p1==p2) //偽

null と undefined の場合、null と undefined は等しいですが、誰と比較しても強制変換されることはありません。

console.log(null==未定義) //true
console.log(null===undefined) //false すべてが等しい場合、返される結果は依然としてfalseです

NaN の場合、NaN はそれ自身を含むどの値とも等しくありません。 NaN である演算子を含む比較では、等しい場合は false が返され、等しくない場合は true が返されます。

console.log(NaN==NaN) //偽
console.log(NaN!='') //true
console.log(NaN!=1) //true
console.log(NaN!={}) //true

これで、JS における合同と不等式、等式と不等式に関するこの記事は終わりです。合同と不等式、等式と不等式に関するより関連性の高い JS コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Javascript における = = (等しい) と = = = (完全に等しい) の違いを簡単に説明してください
  • js イベント処理関数間のイベント オブジェクトは同一ですか?
  • JavaScript における等号 (==) と合同 (===) の違い
  • JavaScript 等価演算子の使用手順
  • JavaScript で 0.1+0.2 が 0.3 と等しくない問題を解く
  • JavaScript で「等しくない」を表すコードは何ですか?

<<:  MySQL 8.0 で列を素早く追加する方法

>>:  FileZilla を使用して FTP サーバーに接続するプロセスの図

推薦する

Javascript 操作メカニズム イベントループ

目次1. 4つのコンセプト1. JavaScriptはシングルスレッドです2. タスクキュー3. 同...

JSでユーザーを追跡する方法

目次1. 同期AJAX 2. 非同期AJAX 3. ユーザーのクリックを追跡する4. リバウンドトラ...

HTML テーブル マークアップ チュートリアル (38): ヘッダーの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、ヘッダーに異なる境界線の色を設定できます。基本的な構文<TH 境界...

Dockerのインストール方法とDockerの4つのネットワークモードの詳細説明

1. Dockerをインストールするyum -y install docker-ioインストールが完...

Mysql+JavaSwing に基づくスーパーマーケット商品管理システムの設計と実装

目次1. 機能紹介2. キーコード2.1 ホームページの機能2.2 製品情報を追加する2.3 データ...

HTML メタの説明

導入メタタグは、HTML言語のHEAD領域にある補助タグです。 meta は、ページの説明、キーワー...

Raspberry Pi msmtp と mutt のインストールと設定のチュートリアル

1. muttをインストールするsudo apt-get install mutt 2. msmtp...

v-model 双方向バインディングデータを実装する vue カスタム コンポーネントのサンプル コード

プロジェクトでは、プロジェクトが呼び出すカスタム パブリック コンポーネントに遭遇します。通常、pr...

MySQL InnoDB トランザクション ロック ソースコード分析

目次1. ロックとラッチ2. 繰り返し読み取り3. インサートロックプロセス3.1 ロックモード3....

nestjs からフロントエンドに返されるデータ形式のカプセル化実装

通常、開発プロセスでは、インターフェイス要求の成功または失敗は httpcode に基づいて決定され...

antd ツリーと親子コンポーネント間の値転送問題について (React のまとめ)

プロジェクト要件: 製品ツリー ノードをクリックすると、そのノードのすべての親ノードが取得され、表に...

CSS3 でテキスト ストロークを実装する 2 つの方法 (要約)

質問最近、以下に示すように、テキストストローク効果を実現するという要件に遭遇しました。 解決策1まず...

MybatisはSQLクエリのインターセプションと変更の詳細を実装します

序文インターセプターの機能の 1 つは、特定のメソッドの呼び出しをインターセプトできることです。イン...

流星効果を実現する JavaScript キャンバス

この記事では、JavaScriptキャンバスで流星の特殊効果を表示するための具体的なコードを参考まで...

Vue3 の ref toRef と toRefs の違いを理解する方法

目次1. 基本1.参照2. 参照3. 参照4. 最適な使い方2. 詳細な1. なぜrefが必要なのか...