もうすぐ受講するコースの復習として Codecademy JS トレーニングを行っています。基本的に、整数を評価して 100 を超える値を 1 つ、100 未満の値を 1 つ返す関数が必要な creditCheck 関数の演習を行います。以下のコードが動くはずだと思っていたのですが、呼び出されずに実行されています。なぜこうなった?
creditCheck = function(income)
{
income *= 1; // one way to convert the variable income into a number.
if (income>100)
{
console.log("You earn a lot of money! You qualify for a credit card.");
return true; // this is an actual return value, console.log() always returns "undefined"
}
else
{
console.log("Alas you do not qualify for a credit card. Capitalism is cruel like that.");
return false;
}
};
console.log("If the log is executing in the function def then this should print second. Otherwise it's probably being executed by the coding script itself.\n\n")
解決策 (おそらく): Codecademy サイトのコンソールでスクリプトをテストしました。そのサイト以外では自己実行しません。これは、そのページで何かファンキーなことが起こっていると私に信じさせます.
その他の解決策 (これも多分): 関数がいつ呼び出されたかをテストするために、上記の最後の行も追加しました。これはプログラムの最後の行であるため、実行が関数本体自体にある場合、その最後の行が最後に出力されると思います。これは、グレーディング スクリプトが独自に関数を呼び出していると思わせます。つまり、実際の関数呼び出しを追加すると、それがめちゃくちゃになるということです。