暗黙的な型変換とは何ですか? JSの暗黙的な型変換の概要
この記事では、暗黙的な型変換とは何か? js の暗黙的な型変換の概要は、参考になると思います。
JavaScript のデータ型は非常に弱いので、算術演算子を使用する場合、たとえば、数値に文字列を加算することができます。異なるデータ型の間で操作を実行できる理由は、JavaScript エンジンが操作の前に暗黙的な型変換を実行するためです。次は数値型とブール型の追加です:
3 + true; // 结果:4
結果は数値型です。 C または Java 環境の場合、演算子の両側のデータ型が一致しないため、上記の操作はエラーになります。ただし、JavaScript では、まれに、間違った型によってエラーが発生します。 null または未定義の属性を受け取る場合は、次のようになります。
"hello"(1); //结果: error: not a function null.x; // 结果:error: cannot read property 'x' of null
ほとんどの場合、JavaScript はエラーを起こさず、対応する型変換を自動的に実行します。たとえば、-、*、/、% などの算術演算子はオペランドを数値に変換しますが、「+」記号は場合によっては算術プラス記号である場合もあれば、算術プラス記号である場合もあります。は文字列です。接続シンボルは、次のようにオペランドによって異なります:
2 + 3; //结果: 5 "hello" + " world"; // 结果:"hello world"
ただし、文字列と数値が追加された場合、JavaScript は、数値が最初に来るか文字列が先に来るかに関係なく、数値を文字に自動的に変換します:
"2" + 3; // 结果:"23" 2 + "3"; //结果: "23"
文字列と数値を足した結果は文字列です!
以下のように、「+」の演算方向は左から右であることに注意してください:
1 + 2 + "3"; // "33"
これは次と同等です:
(1 + 2) + "3"; // "33"
対照的に、次の結果は異なります:
1 + "2" + 3; // "123"
ただし暗黙的な型変換により、一部のエラーが隠れてしまうことがあります。たとえば、null は 0 に変換され、未定義は NaN に変換されます。次のように、NaN と NaN は等しくないことに注意してください (これは浮動小数点数の精度によるものです):
var x = NaN; x === NaN; // false
JavaScript は値が NaN かどうかを検出する isNaN を提供しますが、これは完全に正確ではありません。 isNaN 関数を呼び出す前に、次のように、元々 NaN ではなかった値を NaN に変換する暗黙的な変換プロセスがあるためです。
isNaN("foo"); // true isNaN(undefined); // true isNaN({}); // true isNaN({ valueOf: "foo" }); // true
上記のコードは、isNaN を使用してテストした後、文字列が未定義の場合、またはオブジェクトが見つかった場合でも、結果はすべて true を返します。 ! !しかし、それらは NaN ではありません。
要するに、isNaN が NaN を検出することは信頼できません。 ! !
NaN を検出する信頼性が高く正確な方法があります。
NaN のみがそれ自体と等しくないことは誰もが知っています。数値がそれ自体と等しいかどうかを判断するには、不等号 (!==) を使用できます。したがって、次のように NaN を検出することもできます。 use このモードは、次のように関数として定義されます:
var a = NaN; a !== a; // true var b = "foo"; b !== b; // false var c = undefined; c !== c; // false var d = {}; d !== d; // false var e = { valueOf: "foo" }; e !== e; // false
オブジェクトは、次のように文字列に変換することができます:
function isReallyNaN(x) { return x !== x; }
Object。変換 toSting 関数を呼び出すことで文字列に変換されます。手動で呼び出して確認することもできます。
"the Math object: " + Math; // "the Math object: [object Math]" "the JSON object: " + JSON; // "the JSON object: [object JSON]"
同様に、オブジェクトは Of 関数の値を通じて数値に変換することもできます。これを自分で定義することもできます。 value Of 関数は次のようになります:
Math.toString(); // "[object Math]" JSON.toString(); // "[object JSON]"
オブジェクトに valueOf メソッドと toString メソッドの両方がある場合、次のように、value Of メソッドが常に最初に呼び出されます:
"J" + { toString: function() { return "S"; } }; // "JS" 2 * { valueOf: function() { return 3; } }; // 6
一般的に、value Of と toString で表される値を作成するようにしてください。は同じです (ただし、タイプは異なる場合があります)。
最後のタイプの強制型変換は、if、||、&& などの「真理演算」と呼ばれますが、それらのオペランドは必ずしもブール値である必要はありません。 JavaScript は、単純な変換ルールを通じて一部の非ブール値をブール値に変換します。ほとんどの値は true に変換されますが、少数の値のみが false です。それらは次のとおりです: false、0、-0、""、NaN、null、未定義
。値が false の数値、文字列、オブジェクトがあるためです。 , したがって、真理値変換を直接使用して、関数のパラメーターが渡されるかどうかを判断することは、あまり安全ではありません。たとえば、次のようなデフォルト値を持つオプションのパラメータを持つことができる関数があります:var obj = { toString: function() { return "[object MyObject]"; }, valueOf: function() { return 17; } }; "object: " + obj; // "object: 17"
function point(x, y) { if (!x) { x = 320; } if (!y) { y = 240; } return { x: x, y: y }; }
point(0, 0); // { x: 320, y: 240 }
function point(x, y) { if (typeof x === "undefined") { x = 320; } if (typeof y === "undefined") { y = 240; } return { x: x, y: y }; }
point(); // { x: 320, y: 240 } point(0, 0); // { x: 0, y: 0 }
概要:
型エラーは 1 つあります。型変換により非表示になります。
2. 「+」は、オペランドに応じて、文字列の連結と算術加算の両方を表すことができます。オペランドの 1 つが文字列の場合、それは文字列の連結です。 3. オブジェクトは、value Of メソッドを通じてそれ自体を数値に変換し、toString メソッドを通じてそれ自体を文字列に変換します。 4. Of メソッドの値を持つオブジェクトは、文字列形式で等しい数値を返すように対応する toString メソッドを定義する必要があります。5. 一部の未定義変数を検出する場合は、直接真値演算を行うのではなく、型 Of または未定義との比較を使用する必要があります。
関連する推奨事項:
JavaScriptデータ型の暗黙的型変換の簡単な紹介_javascriptスキル
以上が暗黙的な型変換とは何ですか? JSの暗黙的な型変換の概要の詳細内容です。詳細については、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)

ホットトピック











あるデータ型を別のデータ型に変換することを型変換と呼びます。暗黙的な型変換 明示的な型変換 暗黙的な型変換 オペランドのデータ型が異なる場合、コンパイラは暗黙的な型変換を提供します。これは、小さいデータ型を大きいデータ型に変換することによって、コンパイラーによって自動的に行われます。 inti,x;floatf;doubled;longintl;ここで、上記の式は最終的に「double」値に評価されます。例 以下は、暗黙的な型変換の例です。-intx;for(x=97;x<=122;x++){ printf("%c",x);/*Im

MySQL に存在する暗黙的な型変換には、文字列から数値型、日付と時刻の型、浮動小数点と整数の型、NULL 値などが含まれます。詳細な紹介: 1. 文字列から数値型への暗黙的な型変換 文字列が数値型の値と比較または計算される場合、MySQL は文字列を数値型に変換します; 2. 日付および時刻型の暗黙的な型変換 暗黙的な型変換、MySQL では、日付と時刻型は他のデータ型との暗黙的な型変換も実行できます; 3. 浮動小数点型や整数型などの暗黙的な型変換。

関数内型変換を使用すると、ある型のデータを別の型に変換できるため、関数の機能が拡張されます。 type_name:=variable.(type) という構文を使用します。たとえば、strconv.Atoi 関数を使用すると、文字列を数値に変換し、変換が失敗した場合にエラーを処理できます。

C++ 関数のデフォルト パラメーターの利点には、呼び出しの簡素化、可読性の向上、エラーの回避などがあります。欠点は、柔軟性が限られていることと、名前の制限があることです。可変引数パラメーターの利点には、無制限の柔軟性と動的バインディングが含まれます。欠点としては、複雑さの増大、暗黙的な型変換、デバッグの難しさなどが挙げられます。

さまざまな種類の暗黙的な型変換と、プログラミングにおけるその役割を調べます。 はじめに: プログラミングでは、さまざまな種類のデータを処理する必要があることがよくあります。場合によっては、特定の操作を実行したり、特定の要件を満たすために、あるデータ型を別のデータ型に変換する必要があります。このプロセスでは、暗黙的な型変換が非常に重要な概念になります。暗黙的な型変換とは、変換型を明示的に指定せずに、プログラミング言語が自動的にデータ型変換を実行するプロセスを指します。この記事では、さまざまな種類の暗黙的な型変換と、プログラミングにおけるその役割について説明します。

C 言語の int 変数と float 変数の違いは、型が異なることです。int は整数の格納に使用され、float は小数の格納に使用されます。ストレージ サイズ: int は通常 4 バイトを必要とし、float も 4 バイトを必要とします。精度: int は正確な整数を表しますが、float の精度は限られています。範囲: int の範囲は通常 -2^31 から 2^31-1 ですが、float の範囲はさらに広くなります。算術演算: int と float は算術演算と比較を実行できますが、結果は精度の制限によって影響を受ける可能性があります。型変換: int と float の間で明示的または暗黙的な型変換を実行できます。

一般的な状況: 1. 関数または演算を使用する; 2. 暗黙的な型変換; 3. 等しくない (!= または <>) を使用する; 4. LIKE 演算子を使用し、ワイルドカードで始める; 5. OR 条件; 6. NULL値、7. 低いインデックス選択性、8. 複合インデックスの左端の接頭辞の原則、9. オプティマイザーの決定、10. FORCE INDEX および IGNORE INDEX。

C# と C 言語の間には、構文の類似性、オブジェクト指向プログラミングのサポート、ガベージ コレクション、タイプ セーフティ、プラットフォームの違いなど、密接な関係があります。 C# は、C 言語の構文とオブジェクト指向プログラミングの基礎を継承し、それを拡張してガベージ コレクション、タイプ セーフティ、プラットフォームの特異性などの機能を組み込みます。
