この記事では主に JS デジタル変換の実装方法を紹介します。必要な方は参考にしてください。
JS には、データを数値に変換する 3 つの型と 5 つの方法があります。
• 強制変換。JS の基本データ型は、次の対応する型 (Number(v)) に変換されます。このように
•ネイティブ関数、これら 2 つの関数は異なる結果になります (parseInt(v,radix)、parseFloat(v))
•暗黙的な変換、JS は変数を対応する型に変換します (ビット計算、数学的計算) )
変換された元の値は、オブジェクト、特殊値、文字列の 3 つのカテゴリに単純に分類することもできます。
JS の特別な値には次のようなものがあります:
•未定義、未定義、これは変数が宣言されているが値が割り当てられていない場合、またはオブジェクトが存在しない場合のプロパティの値です。 。
•NaN/無限大、これらは 2 つの頑固な「数値」 (typeof == 数値) であり、それぞれ非数値と無限数を表します。数値への変換に失敗した場合、戻り値は基本的に NaN になるようです。
•null、値がゼロのオブジェクトとして使用されます (typeof == object)。
•true/false、ブール値。true または false を表し、1/0 に相当します。
文字列の場合、内容に応じて細分化することもできます。 JSの数値表現によれば、合法なものと違法なものに分けられます。法定数にはいくつかの異なる分類方法があります:
•符号: 正符号、負符号、符号なし
•基数: 8 進数、10 進数、16 進数
•科学的表記法
•10 進数、整数、および小数の略語
上記の分類に基づいて、さまざまな方法と数値変換の結果をテストするデモを作成しました。以下のスクリーンショットは、Chrome での変換です。
結果を見てください。任意の値を有限数 (isFinite) に変換できるのはビット計算だけです。数学的な計算と強制変換の結果は同じです。
特殊な値の変換は、元の値と変換方法に関係します。すべての parseInt/parseFloat 変換は失敗し、NaN を返します。
•NaN/unknown は他のメソッドを使用して NaN に完全に変換されます。
•Infinity は parseInt によって NaN に変換され、残りのメソッドはその値を変更しません。 parseInt/parseFloat 変換はできません。NaN を返します。
• 数学的計算/数値は論理計算に似ていますが、小数点以下は四捨五入されません。空の文字列を除いて不正な式は NaN を返します。
•parseInt も整数部分のみを保持しますが、不正な式の場合は、文字列の前の正当な整数 (10 進数、16 進数、科学表記法を除く) 部分を取得して変換し、それ以外の場合は NaN を返します。
•parseFloat は parseInt に似ていますが、小数部分を認識して保持できることと、16 進数をサポートしない点が異なります。
JavaScript ビデオ チュートリアル をご覧ください。