if if语句在if语句执行后跳转到else语句中

时间:2014-11-07 21:33:58

标签: javascript javascript-events

我有这个if - else语句:

if (typeof (answers.QUEST122) === 'undefined') {
                    answers.QUEST122 = '00';
                }
else {
       $scope.answers.QUEST122 = answers.QUEST122.substr(answers.QUEST122.length - 2);
     }

由于某种原因,当值未定义,并且answers.QUEST122设置为' 00'时,也会执行else语句,尽管没有理由将其执行,因为价值未定义。

你们在这个if-else声明中看到了什么问题吗?

提前致谢,Laziale

3 个答案:

答案 0 :(得分:0)

它按预期工作

var answers = {
  "QUEST122": undefined
};

if (typeof answers.QUEST122 === 'undefined') {
  answers.QUEST122 = '00';
} else {
  console.log('hi');
}

// => "00"

将其粘贴到浏览器的控制台中,您将看到它永远不会运行else块。我认为你的问题源于其他问题。看到你正在使用Angular,我会检查你的逻辑,看看是否在其他地方设置了$ scope.QUEST112。

答案 1 :(得分:0)

这里效果很好,所以尝试使用这样的

typeof (answers.QUEST122) == 'undefined' ? answers.QUEST122 = '00' : $scope.answers.QUEST122 = answers.QUEST122.substr(answers.QUEST122.length - 2);

答案 2 :(得分:0)

我猜你必须查看对象值(CHECK THE)。if-else语句没有错。