3

もうすぐ受講するコースの復習として 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 サイトのコンソールでスクリプトをテストしました。そのサイト以外では自己実行しません。これは、そのページで何かファンキーなことが起こっていると私に信じさせます.

その他の解決策 (これも多分): 関数がいつ呼び出されたかをテストするために、上記の最後の行も追加しました。これはプログラムの最後の行であるため、実行が関数本体自体にある場合、その最後の行が最後に出力されると思います。これは、グレーディング スクリプトが独自に関数を呼び出していると思わせます。つまり、実際の関数呼び出しを追加すると、それがめちゃくちゃになるということです。

4

5 に答える 5

3

定義した関数を呼び出す必要があります。

 var creditCheck = function(income)
    {
        if (income>100)
            {
                return(console.log("You earn a lot of money! You qualify for a credit card."));
            }
        else
            {
                return(console.log("Alas you do not qualify for a credit card. Capitalism is cruel like that."));
            }

    }; creditCheck(111);
于 2013-08-07T19:35:55.087 に答える
0

まだ誰も正しいと投票されていないので、これを分類すると思います。

問題は、質問を読み直す必要があることです。if は 100 以上です。したがって、符号は '<=' であり、'<' ではありません。

creditCheck = function(income){
    if(income>=100){
        return "You earn a lot of money! You qualify for a credit card.";
    } else{
        return "Alas you do not qualify for a credit card. Capitalism is cruel like that.";
    }
};


creditCheck(75);
creditCheck(125);
creditCheck(100);
于 2013-09-12T10:04:02.560 に答える
0

関数を呼び出すには、関数を呼び出す必要があります;)

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;
        }
};
var check = creditCheck(123); // runs the function
alert(check); // and alerts() the result
于 2013-08-07T19:39:21.583 に答える