Спасибо, что нашли время, чтобы рассмотреть этот вопрос. Я пытался решить проблему в течение одного или двух часов безуспешно ...
У меня есть веб-страница, которая устанавливает переменную 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. В противном случае он возвращает значения оценки и сообщения. Однако вместо получения значения «false» для «grade», когда я устанавливаю значение переменной grade на основе функции getScore, я получаю «undefined». (У нас нет проблем при правильной проверке ответа пользователя.)
После установки «оценки» я попытался проверить, не определена ли какая-либо его часть:
if(typeof(grade.score) !== undefined)
Я не понимаю, почему, но даже когда я вижу "undefined" в моей консоли Firebug, grade.score проходит эту проверку ...
Кто-нибудь видит, что я делаю неправильно? Большое спасибо за вашу помощь. Мне нужно многое узнать о JavaScript.