7. function alertBoolean(isBoolean) {
if (isBoolean) {
alert("It is true.");
} else {
alert("It is false.");
}
}
alertBoolean(false); // It is false.
alertBoolean("false"); // It is true.
関数を変更する場合、
どのような引数が渡されるのか
調べる必要がある
関数を利用する場合、
どのような引数を渡せば正しく
動作するのか、関数の中身を
把握する必要がある
▌サンプル
メンテナンスにコストがかかる例
8. Closure Compiler で静的型付け
▌コードを実行する前に問題を発見できる。
/**
* @param {boolean} isBoolean
*/
function alertBoolean(isBoolean) {
if (isBoolean) {
alert("It is true.");
} else {
alert("It is false.");
}
}
alertBoolean(false); // It is false.
alertBoolean("false"); // COMPILE ERROR!!
期待する変数の型を限定するので、
それを前提にコードを変更できる
→ 調べるコストが減る!
間違った使い方をしても、コードを
実行する前に気づくことができる
→ 実行するコストが減る!
14. Closure Compiler で最適化&圧縮
/**
* @param {boolean} isBoolean
*/
function alertBoolean(isBoolean) {
if (isBoolean) {
alert("It is true.");
} else {
alert("It is false.");
}
}
alertBoolean(false); // It is false.
alertBoolean(true); // It is true.
function a(b){b?alert("It is
true."):alert("It is false.")}
a(!1);a(!0);
Before (239byte) After (72byte)
読み込み量が減らせる!