Javascriptにおける二重等号の暗黙的な変換機構の例
Javascriptには、二重等号(==)と三重等号(===)の2種類の等価関係があります。 2 つの等号 (==) は値の等しいことを示し、3 つの等号 (===) は厳密な等しい (値と型が完全に等しいかどうか) を示します。
それでは、いくつかの常識的な知識があります:
1. string、number、== と === などの基本的な型の場合、== と === は異なります
1) 異なる型間の比較、== 比較は「型の後に同じ「値」を付けて「値」が等しいかどうかを確認します === 型が異なる場合、結果は不等になります
2) 同じ型の比較の場合は、「値」と結果を直接比較します。同じになります
2. 配列、オブジェクトの場合 高度な型の場合、==と===に違いはありません
「ポインタアドレス」を比較します
3. 基本型と高度な型には違いがあります。と ===
1) == については、高度な型を比較する 基本型に変換して「値」の比較を行う
2) 型が異なるため、=== の結果は false になります
つまり、 二重等号 (==) は操作中に 型変換 を実行しますが、三重等号 (===) は実行しません。
例:
alert('55' == 55); //true alert('55' === 55); //false
JavaScript言語の5つの基本的なデータ型(プリミティブ値、単純なデータ型とも呼ばれる):すなわち、未定義型、Null型、ブール型、数値型、および文字列型。これらのプリミティブ型は固定量のスペースを占有するため、より小さなメモリ領域、つまりスタックに格納できます。このストレージにより、変数の値をすばやく簡単に検索できるようになります。 (詳細については、http://www.w3school.com.cn/js/pro_js_value.asp を参照してください)
JavaScript で二重等号 (==) を使用して等しいかどうかを判断する暗黙的な変換メカニズム:
1, if両側が単純型:
1,1. 両側が単純型で型が同じ場合は、直接比較されます。
console.log(1==1); //true console.log("1"=="1"); //true console.log(false==false); //true console.log(null==null); //true console.log(undefined==undefined); //true
1.2. 両辺が単純型である場合、型が異なる場合、最初に数値比較に変換されます (Boolean は true==1、false==0 の 2 つの値のみを持ちます。null と unknown は等しいです)。数値は数値値と等しく、空の文字列 ""==0;)console.log(1==true); //true
console.log(0==false); //true
console.log(1=="1"); //true
console.log(0==""); //true
console.log(0==null); //false
console.log(0==undefined); //false
console.log(null==undefined); //true
console.log(Object==Object); //true console.log(Object=={}); //false console.log(0=={}); //false console.log(0==[]); //true console.log(Array==Array); //true console.log(Object==Array); //false
3. 両側が参照型(高度な型)の場合、「ポインタアドレス」の比較が実行されます。
重要な点 - toString() と valueOf()
これら 2 つのメソッドを見たときに多くの人が抱く第一印象は、toString() メソッドはオブジェクトを文字列に変換し、valueOf メソッドはオブジェクトを数値に変換するということです。 。
この考えは非常に一方的です。次の 2 つの例を見てみましょう:
var obj={ name:"熊仔其人", getName:function(){ return $(this).name; } }; console.log(obj.toString()); //[object Object]
obj オブジェクトを定義し、その toString メソッドを呼び出します。戻り値は [object Object] ですが、値が返されないことを確認します。私たちが想像したように、その内容の文字列表現。
var arr=[1,2,3]; console.log(arr.valueOf()); //(3) [1, 2, 3]
は配列 arr を定義し、その valueOf メソッドを呼び出します。戻り値は [1, 2, 3] です。
数値型の表現が想像どおりに返されないことがわかります。 実際、本当の理解は次のとおりです。オブジェクトの toString() メソッドを呼び出すと、オブジェクトを文字列に変換できますが、文字列に変換したい場合は、必ずしも toString メソッドを呼び出す必要はありません。
以下のコードをもう一度見てみましょう。
var obj= { }; obj.valueOf=function(){ return 1; } obj.toString=function(){ return 2; } console.log(obj==1); //truevar obj2= { }; obj2.valueOf=function(){ return 2; } obj2.toString=function(){ return 1; } console.log(obj2==1); //false var obj3={ }; obj3.valueOf=function(){ return []; } obj3.toString=function(){ return 1; } console.log(obj3==1); //true
上記のコードでは、オブジェクトobj、obj2を定義し、valueOfメソッドとtoStringメソッドの戻り値を定義し、それらが等しいかどうかを1と比較すると、valueOfメソッドが最初に呼び出されることがわかりました。
次にオブジェクトobj3を定義し、valueOfメソッドとtoStringメソッドの戻り値を定義し、1と等しいかどうかを比較すると、toStringメソッドを呼び出していることがわかります。
次に、次のコードを見てみましょう:
var obj= { }; obj.valueOf=function(){ return 'a'; } obj.toString=function(){ return 2; } console.log(obj=='a'); //truevar obj2= { }; obj2.valueOf=function(){ return 'b'; } obj2.toString=function(){ return 'a'; } console.log(obj2=='a'); //false
オブジェクト obj は、上記のコード 2 で定義されています。それを文字列 'a' と比較することで、valueOf メソッドを呼び出していることがわかります。
すると、オブジェクト obj2 と 'a' の比較は false を返し、toString メソッドが呼び出されないことがわかります。
これから結論を導き出すことができます:
オブジェクトが単純な型に変換されると、最初に valueOf メソッドが呼び出されます。単純な値と比較できる場合は、直接比較され、現時点では、toString メソッドは呼び出されなくなります。 valueOf メソッドを呼び出した後、valueOf メソッドを単純な値と比較できない場合は、最終的に比較結果を取得するために toString メソッドが再度呼び出されます。 ただし、Date オブジェクトが上記のルールを満たしていないことに注意してください。Date オブジェクトの toString メソッドと valueOf メソッドが再定義されており、toString メソッドがデフォルトで呼び出されます。
以上がJavascriptにおける二重等号の暗黙的な変換機構の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











全角の英字を半角に変換する実践的なヒント. 現代の生活において私たちは英語の文字に触れる機会が多く、パソコンや携帯電話などを使用する際に英語の文字を入力する必要が多くなります。ただし、場合によっては全角の英字が登場するため、半角形式を使用する必要があります。では、全角の英字を半角に変換するにはどうすればよいでしょうか?ここでは、いくつかの実践的なヒントを紹介します。まず、全角英数字とはインプットメソッド内で全角の位置を占める文字のことを指しますが、半角英数字は全角の位置を占めます。

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

Golang の時間変換: タイムスタンプを文字列に変換する方法 Golang では、時間操作は非常に一般的な操作の 1 つです。表示や保存を容易にするために、タイムスタンプを文字列に変換する必要がある場合があります。この記事では、Golang を使用してタイムスタンプを文字列に変換する方法と、具体的なコード例を紹介します。 1. タイムスタンプと文字列の変換 Golang では、タイムスタンプは通常、1970 年 1 月 1 日から現在時刻までの秒数を表す整数の形式で表現されます。文字列は

仮想マシン (VM) を物理マシンに変換することは、仮想インスタンスおよび関連するアプリケーション ソフトウェアを物理ハードウェア プラットフォームに移行するプロセスです。この変換は、オペレーティング システムのパフォーマンスとハードウェア リソースの使用率を最適化するのに役立ちます。この記事は、この変換を行う方法を詳しく説明することを目的としています。仮想マシンから物理マシンへの移行を実装するにはどうすればよいですか?通常、仮想マシンと物理マシン間の変換プロセスは、サードパーティ ソフトウェアによって仮想マシンの外部で実行されます。このプロセスは、仮想マシンの構成とリソースの転送を含む複数の段階で構成されます。物理マシンを準備する: 最初のステップは、物理マシンが Windows のハードウェア要件を満たしていることを確認することです。変換プロセスにより既存のデータが上書きされるため、データを物理マシンにバックアップする必要があります。 *システムイメージを作成するための管理者権限を持つ管理者アカウントのユーザー名とパスワード。仮想になります

AI ファイルは Adobe Illustrator (略して AI) ソフトウェアで作成されたベクター グラフィック ファイルを指しますが、CDR ファイルは CorelDRAW ソフトウェアで作成されたベクター グラフィック ファイルを指します。これら 2 つのソフトウェアは異なる製造元によって開発されているため、ファイル形式が異なるため、相互に直接変換することはできません。ただし、いくつかの方法で AI ファイルを CDR ファイルに変換できます。よく使われる変換方法を以下に紹介します。ステップ 1: AI ファイルを EPS 形式でエクスポートする AdobeIllust

この記事では、PHPの月を英語の月に変換する方法と具体的なコード例を詳しく紹介します。 PHP 開発では、デジタル月を英語の月に変換する必要がある場合があります。これは、一部の日付処理またはデータ表示シナリオでは非常に実用的です。以下に実装原理、具体的なコード例、注意点について詳しく説明します。 1. 実装原理 PHP では、DateTime クラスと format メソッドを使用して、デジタル月を英語の月に変換できます。日付

この記事では、OpenDocumentTextDocument (ODT) ファイルを Microsoft Word (Docx、DOC など) に変換する方法を説明します。フォーマット。 Windows 11/10 で ODT を Word に変換する方法 Windows PC で ODT ドキュメントを DOC または DOCX 形式に変換する方法は次のとおりです: WordPad または Word を使用して ODT を Word に変換する 最初に紹介する方法は、WordPad または Word を使用することです。 MicrosoftWord を使用して ODT を Word に変換します。これを実現する手順は次のとおりです。 まず、[スタート] メニューを使用してワードパッド アプリを開きます。さあ、ここに行ってください

全角英文字を半角文字に変換する方法 日常生活や仕事の中で、パソコンのパスワードを入力するときや文書を編集するときなど、全角英文字を半角文字に変換する必要がある場面に遭遇することがあります。レイアウトの設計。全角英数字は漢字と同じ幅の文字を指し、半角英数字はそれより狭い幅の文字を指します。実際の運用では、文字や数字をより便利に処理できるように、全角英字を半角文字に変換する簡単な方法をマスターする必要があります。 1. 全角英字と半角英字
