Javascript开关-没有结果,即使是默认值?

Javascript开关-没有结果,即使是默认值?,javascript,Javascript,使用Chrome的控制台/调试器: 在if语句中,quickChallengeResponse显示undefined 和console.dir(quickChallengeTimer)显示30 然而,在我的页面上,没有打印任何内容,甚至连错误都没有,而且quickChallengeTimer也没有更改为60,正如案例30中告诉它的那样 我犯了什么错?谢谢 var quickChallengeTimer = 30; var quickChallengeQuestion; var quickCha

使用Chrome的控制台/调试器:

在if语句中,quickChallengeResponse显示undefined

和console.dir(quickChallengeTimer)显示30

然而,在我的页面上,没有打印任何内容,甚至连错误都没有,而且quickChallengeTimer也没有更改为60,正如案例30中告诉它的那样

我犯了什么错?谢谢

var quickChallengeTimer = 30; var quickChallengeQuestion; 
var quickChallengeAnswer; var quickChallengeResponse;

    function quickChallenge(quickChallengeTimer, 
quickChallengeQuestion, quickChallengeAnswer) {

        if (typeof quickChallengeResponse == undefined) {
            switch (quickChallengeTimer) {

                case 30:
                    quickChallengeTimer = "60";
                    quickChallengeResponse = null;
                    console.write("now60");
                    break;

                case 60:
                    quickChallengeTimer = "120";
                    quickChallengeResponse = null;
                    console.write("now120");
                    break;

                default:
                console.write("Error");
                break;
            }
        }

        console.dir(quickChallengeTimer);
    }



quickChallenge(quickChallengeTimer);

typeof返回一个字符串。您需要将其与
'undefined'

if (typeof quickChallengeResponse == 'undefined') {
            switch (quickChallengeTimer) {
此外,正如注释中指出的,console.write不存在。使用console.log


的结果将始终是一个字符串。比较应该针对
'undefined'
(带引号)而不是.Jonathan,我刚刚添加了'marks',但仍然没有显示任何内容。一个大问题是没有console.write()…您可以使用“switch(+quickchallengetime)”在您的案例中与数字进行比较,即使它们作为字符串传递。这不是一个糟糕的安全实践,除非出于某种原因,您需要特别注意类型。我的意思是使用document.write。谢谢