TypeScriptに入門したいのでJavaScriptに入門してみる(暗黙的な型変換)
続: JavaScript入門
教材は
暗黙的な型変換
等価演算子などで暗黙的に型変換される例が載っているが、必要性は薄く基本的には === を使うようにすべき。
暗黙的な変換は割とひどい仕様が載っている…
明示的な型変換
任意の値 -> 真偽値
任意の値を真偽値に変換できるが、どの値がtrueに、どの値がfalseになるのかは
- falsy な値が falseになる
- falsy でない値は true になる
というルールに従う。 falsy な値とは以下の6種類である。
- false
- undefined
- null
- 0
- NaN
- "" (空文字)
数値 -> 文字列
真偽値に対しては Stringで true または false という文字列になる。同じように null, undefined, シンボルのプリミティブ型の値に対しては変換は見た目通りの文字列を得ることができる。
オブジェクトを文字列にしたい場合は、 JSON.stringify などのより適切な方法を使うべきである。
シンボル -> 文字列
文字列 -> 数値
ユーザからの入力を数値にする場合などに使う。
Number.parseInt や Number.parseFloat といった方法もある。渡された文字列が数字じゃない場合は NaN が返る。
NaNは Number型
- Not a Number の略称が
NaN NaNは何と演算しても結果がNaN- typeof NaN -> number
- NaN は自分自身と一致しない
NaNは自分自身と一致しない性質があるので、これを利用してある値が NaN かどうかを判定できる。
なおすでに Number.isNaN というメソッドがあるので、そちらを利用すべき。
NaNは暗黙的な型変換では最も避けるべき値
NaNは何と演算しても結果がNaNになってしまうため、デバッグが難しくなる。
JSDoc
JSではコメントで引数の型を記述する書式として JSDoc が有名。
JavaDocみたいな感じですね。