最近の記事
- 9/1 - 将棋始めました
- 5/16 - サーバー引っ越し
- 4/24 - 優先順位
- 3/17 - vbNullString と 空文字列 ""
- 3/15 - InputBox 関数の戻り値
- 3/13 - 紙と Excel と VBA
- 3/9 - 未だに Visual Basic 6
- 11/14 - ぼて閉鎖
- 11/9 - 関数オブジェクトの呼び出し
- 9/7 - メソッドとしての関数オブジェクト
Entering Passive Mode
if (new Boolean(false) && "false") {
alert("Oops!");
}
変数や関数の引数に型を制限できる、型に厳密なプログラミング言語では、
ソースコードを解析した時点で、互換性がない型の値を検出できる。
しかし、JavaScript の値の型は常に実行時に決まる。
なので、原則として、その文を実行するまで、
どのような型が渡されるかは検出できない。
これが何を意味するかというと、関数の引数等、外部から受け取る値については、
設計者が想定している型である保障がないため、
値を使う前に、型を確認する必要があるということだ。
だが、常に型を確認するということは、コーディングの苦痛以外の何者でもないため、
JavaScript は型を制限できない代わりに、自動的・暗黙の型変換を行う仕組みを持っている。