メインコンテンツにスキップ
モジュール 2 · レッスン 4 / 4コース内の 8/32~8 min
モジュールのレッスン (4/4)

型変換

常に値の 型を変換する必要があります: value HTML 入力は、数値や API を表す場合でも文字列として到着します。 フォーマットする文字列を返す場合、オブジェクトをテキストとしてログに記録する必要があります。 JS オファー 変換の 3 つのファミリー: 明示的な専用パーサー、および (予定) 回避) 暗黙的なもの。

明示的な変換

これらは最も明確であり、デフォルトにする必要があります。

JS
Number('42'); // 42
Number('3.14'); // 3.14
Number(''); // 0     ← careful
Number('  10 '); // 10     (spaces are ignored)
Number('ciao'); // NaN    ← does not represent a number

String(42); // '42'
String(true); // 'true'
String(null); // 'null'
String(undefined); // 'undefined'

Boolean(1); // true
Boolean(0); // false
Boolean(''); // false
Boolean('abc'); // true

parseInt および parseFloat: 寛容なパーサー

Number(...) とは異なり、parseInt および parseFloat 数値以外の文字列は無視されます。 文字列の tail: 最初の無効な文字で停止します。

JS
Number('42px'); // NaN
parseInt('42px'); // 42
parseFloat('3.14em'); // 3.14
parseInt('   12 anni'); // 12
parseInt('ciao12'); // NaN  ← must start with digits

toFixed 数値を文字列としてフォーマットする

前のレッスンで簡単に説明しました。小数点以下 N 桁に四捨五入して、 文字列。

JS
(3.14159).toFixed(2); // '3.14'
(1).toFixed(2); // '1.00'

number に変換し直すには、Number(...) プレフィックスまたは単項を使用します。 +:

JS
Number((3.14159).toFixed(2)); // 3.14
+(3.14159).toFixed(2); // 3.14

NaN: 噛み付く値

NaN (「数値ではありません」) は、失敗した数値演算によって生成されます。

JS
Number('ciao'); // NaN
0 / 0; // NaN
parseInt('xxx'); // NaN

特徴:

  • タイプは 'number' です (はい、「非数値」は数値です)
  • それ自体と等しくありません: NaN === NaN は false です
  • テストするには、関数 Number.isNaN(x) を使用します
JS
const x = Number('ciao');
x === NaN; // false (!)
Number.isNaN(x); // true

試してみてください

運動#js.m2.l4.e1
試行回数: 0読み込み中…

文字列「128.95 EUR」を指定すると、(10 進数) 数値を抽出して最も近い整数に丸め、数値として返します。予想: 129。

エディターを読み込み中…
ヒントを表示

parseFloat は「EUR」を無視します。 .toFixed(0) は文字列として整数に丸めます。 Number(...) は数値に変換されます。

3 回の試行後に解決策が利用可能になります

復習演習

運動#js.m2.l4.e2
試行回数: 0読み込み中…

`n = Number('non un numero')` とすると、結果が NaN の場合に true と評価される単一の式を作成します。

エディターを読み込み中…
ヒントを表示

n === NaN ではなく、Number.isNaN を使用します。NaN はそれ自体と等しくありません。

3 回の試行後に解決策が利用可能になります