Javascript JS中的if-else语句在if语句执行后跳入else语句
我有一个if-else语句:Javascript JS中的if-else语句在if语句执行后跳入else语句,javascript,dom-events,Javascript,Dom Events,我有一个if-else语句: if (typeof (answers.QUEST122) === 'undefined') { answers.QUEST122 = '00'; } else { $scope.answers.QUEST122 = answers.QUEST122.substr(answers.QUEST122.length - 2); } 由于某些原因,当值未定义且answers.
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语句有什么错误吗?它的工作原理与预期一样
var answers = {
"QUEST122": undefined
};
if (typeof answers.QUEST122 === 'undefined') {
answers.QUEST122 = '00';
} else {
console.log('hi');
}
// => "00"
将其粘贴到浏览器的控制台中,您将看到它从不运行else块。我认为你的问题来自其他方面。鉴于您使用的是Angular,我会检查您的逻辑,看看$scope.QUEST112是否设置在其他任何地方。此处效果良好,所以请尝试这样使用
typeof (answers.QUEST122) == 'undefined' ? answers.QUEST122 = '00' : $scope.answers.QUEST122 = answers.QUEST122.substr(answers.QUEST122.length - 2);
我想你必须检查对象的值。检查if-else语句没有问题 在这里做正确的事情:else不会运行。你确定在它将值设置为00后不会再次调用它吗?谢谢@Brian,很好的建议。通常,当我编辑时,一个不推荐的标签将自动替换为它的现代等价物,但我并不精通标签编辑。在这种情况下,我们可以为旧标签设置吗?好的@Brian,谢谢。我会尽力留意的。