ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptで強制型変換を行う方法
強制変換メソッド: 1. ToString()、ToNumber()、または ToBoolean() メソッドを使用します。 2. String()、Number() または Boolean() メソッドを使用します。 3. " " または "- を使用します。 "operator; 4. "if()" や "while()" などのステートメントを使用します。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
1.ToString
通常のオブジェクトの場合、 toString メソッドを自分で定義すると、Object.prototype.toString() メソッドが呼び出されます。オブジェクトに独自の toString メソッドがある場合、文字列化はそのメソッドを呼び出し、その戻り値を使用します。
2.ToNumber
let a = { valueOf:function(){ return "42"; } }; let b = { toString:function(){ return "42"; } }; let c = [4,2]; c.toString = function(){ return this.join(""); //"42" }; Number(a); //42 Number(b); //42 Number(c); //42 Number(''); //0 Number([]); //0 Number(["abc"];//NaN
3.ToBoolean
JavaScript の値は、強制的に false にできる値と、強制的に false にできる値に分けることができます。強制できる値 2種類の値をtrueに変換します。
偽値:
真の値: 上記のリストを除き、すべてのオブジェクトは真の値として理解でき、すべてのオブジェクトは真の値です
let a1 = new Boolean( false ); let b1 = new Number( 0 ); let c1 = new String( "" ); let d1 = Boolean(a1 && b1 && c1); //true let a2 = []; let b2 = {}; let c2 = function(){}; let d2 = Boolean(a2 && b2 && c2); //true
1. 文字列と数値の間の変換の表示
#文字列と数値変換は、2 つの組み込み関数 String(..) と Number(..) によって行われます。
String(..) と Number(..) に加えて、文字列と数値の間の明示的な変換を実現する他のメソッドがあります。
let a = 42; let b = a.toString(); let c = "3.14"; let d = +c; b; // "42" d; // 3.14
a.toString() は明示的ですが、暗黙的な変換が含まれます。 toString() は 42 のようなプリミティブ値では機能しないため、JavaScript エンジンは 42 のラッパー オブジェクトを自動的に作成し、そのオブジェクトに対して toString() を呼び出します。この明示的な変換には暗黙的な変換が含まれます。
2. ブール値への表示変換
let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; Boolean( a ); // true Boolean( b ); // true Boolean( c ); // true Boolean( d ); // false Boolean( e ); // false Boolean( f ); // false Boolean( g ); // false
Boolean(..) は明示的ですが、一般的には使用されません。型をブール値に明示的にキャストする最も一般的な方法は、次のとおりです!!
let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; !!a; // true !!b; // true !!c; // true !!d; // false !!e; // false !!f; // false !!g; // false
[推奨学習: javascript 上級チュートリアル ]
1. 文字列と数値の間の暗黙的なキャスト変換
( 1) 演算子
は、数値加算と文字列連結の両方に使用できます。
オペランドの 1 つが文字列である場合 (または、ToPrimitive 抽象演算を呼び出して文字列が取得された場合)存在する場合は文字列の連結が実行され、それ以外の場合は数値の加算が実行されます。配列の valueOf() オペレーションは単純なプリミティブ値を取得できないため、代わりに toString() を呼び出します。したがって、以下の例の 2 つの配列は「1,2」と「3,4」になります。それらを連結すると「1,23,4」が返されます。
let a = "42"; let b = "0"; a + b; // "420" let c = 42; let d = 0; c + d; // 42 let x = [1,2]; let y = [3,4]; x + y; // "1,23,4"
let a = 42; let b = a + ""; b; // "42"
ToPrimitive 抽象操作ルールに従って、「」は a の valueOf() メソッドを呼び出し、ToString 抽象操作を通じて戻り値を文字列に変換します。 String(a) は ToString() を直接呼び出します。最終的に返されるのは文字列ですが、a が数値ではなくオブジェクトの場合、結果は異なる可能性があります
let a = { valueOf: function() { return 42; }, toString: function() { return 4; } }; a + ""; // "42" String( a ); // "4"
#-Yes 数値の減算演算子なので、a - 0 は a を数値にキャストします。これら 2 つの演算子は数値にのみ適用されるため、* 1 と /1 を使用することもできますが、そのような使用法はあまり一般的ではありません
let a = [3]; let b = [1]; a - b; // 2
2. 暗黙的な必須型 ブール値に変換
#ブール値の暗黙的なキャスト変換は、以下の場合に発生します。 (1) if(..)文の条件判定式。 (2) for ( .. ; .. ; .. ) 文の条件式(2番目)です。 (3) while (..) および do..while(..) ループの条件式。 (4) ? : の条件判定式。(5) 論理演算子 || (論理 OR) および && (論理 AND) (条件式として) の左側のオペランド。
上記の場合、非ブール値は、前に紹介した ToBoolean 抽象操作ルールに従って、暗黙的にブール値にキャストされます。
プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !
以上がJavaScriptで強制型変換を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。