【发布时间】:2011-11-24 01:31:13
【问题描述】:
感谢您抽出宝贵时间查看此问题。我一直试图解决一个问题一两个小时,但没有成功......
我有一个基于函数响应设置 JavaScript 变量的网页:
grade = getScore(questionAnswer, userAnswer, questionType);
(userAnswer 是用户对问题的回答,从文本区域中检索)
这里是getScore:
function getScore(questionAnswer, userAnswer, questionType) {
switch(questionType) {
case 'multiplechoice':
return scoreMC(questionAnswer, userAnswer);
break;
case 'usertypesanswer':
return scoreTA(questionAnswer, userAnswer);
break;
default:
return 0
}
}
scoreMC 和 scoreTA 的函数已经过彻底测试并且运行良好。问题是如果用户的答案格式不正确, scoreMC 或 scoreTA 将返回 false。否则它返回值分数和味精。但是,当我根据 getScore 函数设置等级变量的值时,我没有得到“等级”的“假”值,而是得到“未定义”。 (当用户响应正确验证时,我们没有问题。)
设置“等级”后,我尝试检查它的任何部分是否未定义:
if(typeof(grade.score) !== undefined)
我不明白为什么,但即使我在 Firebug 控制台中看到“未定义”,grade.score 还是通过了这个检查...
有人看到我做错了吗?非常感谢你的协助。关于 JavaScript,我还有很多东西要学。
【问题讨论】:
-
你试过没有
typeof
标签: javascript return undefined