判定方法: 1. 等価演算子「==」または「===」を使用する; 2. 配列内の toString() メソッドを使用する; 3. 「Object.is()」メソッドを使用する; 4 、まず「JSON.stringify()」を使用してオブジェクトまたは配列を文字列型に変換し、次に等価比較に「===」を使用します。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
変数が等しいかどうかを判断する方法
変数が等しいかどうかを判断するには、大まかに次の方法があります
-
==
および===
; - 配列内で
toString
メソッドを使用します; - # ES6
の
Object.isメソッド;
は - JSON.stringify
を使用して、比較のために
String型に変換します。
#== および ===
#==
=== は厳密な比較演算子です。データ型が同じ場合、通常は
== を使用しても問題は発生しません。
let num = 5; let num2 = 5; num == num2;//true num === num2;//true
ただし、データ型に一貫性がない場合、
== は暗黙的な型変換を実行します。 let num = 5; let str = '5'; num == str;//true num === str;//false '' == false;//true '' === false;//false null == undefined;//true null === undefined;//false
暗黙的な変換タイプはある程度の利便性をもたらしますが、見つけにくい
バグを引き起こす可能性もあるため、=== を使用することをお勧めします。比較用です。これが
TS が人気がある理由の 1 つです。
さらに、上記のリストはすべて基本的なデータ型の比較であり、
===
let a = {xx: 1}; let b = a; a === b;//true let c = {xx: 1}; let d = {xx: 1}; c === d;//false
参照型を比較する場合、
=== は値 ではなく、変数の参照が同じかどうかを比較します。参照が異なる場合は false
が返されます。 ===
は無敵になる特効薬ではないことがわかります。オブジェクトが等しいかどうかを比較する場合、他のより信頼性の高い方法が必要です。
[推奨学習: JavaScript 上級チュートリアル
]
フロント エンドからバックエンド エンドからパラメータを渡す場合、バックエンドは と で区切られた複数のパラメータを必要とする場合があります。
Array toString メソッドの方が便利です。このメソッドは配列の比較にも使用できます。 <pre class='brush:php;toolbar:false;'>let arr = [1,3,5,7,9];
let arr2 = [1,3,5,7,9];
arr.toString() === arr2.toString();//true "1,3,5,7,9"</pre>
ただし、2 次元以上の配列の比較には使用できず、null
、
、## を含めることはできないという制限があります。 #object##. #、function
など。そうしないと、次のようにエラーが発生しやすくなります。<pre class='brush:php;toolbar:false;'>[1,3,5,[2,4,6]].toString();//"1,3,5,2,4,6"
[1,null,undefined,&#39;&#39;,2].toString();//"1,,,,2"
[{xx:2},window,1,2].toString();//"[object Object],[object Window],1,2"</pre>
Object.is method
Object.is は ES6 の新しいメソッドです。=== と非常によく似ており、2 つの値が等しいかどうかを比較するためにも使用されます。
Object.is(1,1);//true Object.is('str','str');//true Object.is({},{});//false
違いは、 0
と -0
、
と NaN
の判断にあります。 <pre class='brush:php;toolbar:false;'>+0 === -0 //true
NaN === NaN //false
Object.is(+0, -0) //false
Object.is(NaN, NaN) //true</pre>
互換性の問題に対処する場合、ポリフィルは次のように記述できます。 <pre class='brush:php;toolbar:false;'>if (!Object.is) {
Object.is = function(x, y) {
if (x === y) {
// 针对+0 不等于 -0的情况
return x !== 0 || 1 / x === 1 / y;
} else {
// 针对NaN的情况
return x !== x && y !== y;
}
};
}</pre>
JSON.stringify
JSON.stringify メソッドは、オブジェクトまたは配列を JSON 文字列に変換するために使用されます。 、結果の文字列はオブジェクトの比較に使用できます。 let obj = {name: 'lin', age: 24};
let obj2 = {name: 'lin', age: 24};
obj === obj2;//false
JSON.stringify(obj) === JSON.stringify(obj2);//true
は、===
がオブジェクトを正確に比較できないという制限を補いますが、一定の制限もあります。 ##、
、symbol
の値は無視されます。 さらに、
JSON.parse
と JSON.stringify
を使用すると、上記と同じ制限付きでオブジェクトのディープ コピーを実現できることにも言及する価値があります。
いつ使用するかシナリオが異なれば、要件も異なる場合があります。基本的なデータ型のみを比較する場合は、
で十分ですが、「一度だけ 」をしたい場合は、カスタム メソッドを使用するために一定のコストを支払う必要があるのは間違いありません。 日々繰り返される開発の中で、まだまだ探究する必要があります。
プログラミング関連の知識について詳しくは、プログラミング ビデオ
をご覧ください。 !
以上がJavaScriptで変数が等しいかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
