【发布时间】:2019-05-02 20:07:10
【问题描述】:
我刚刚了解了三元运算符,但它并没有像我预期的那样运行。如果发现它真的很混乱。我一遍又一遍地在控制台中收到错误,我不明白为什么。
一个正常的函数给我undefined,这很好,但是三元运算符给我一个“未定义”的错误,但是为什么?
三元运算符
var experiencePoints = winBattle() ? 10 : 1;
错误
VM363:1 Uncaught ReferenceError: winBattle is not defined
我的功能
function experiencePoints() {
if (winBattle()) {
return 10;
} else {
return 1;
}
}
它给出了:
undefined
我想像普通函数一样得到未定义。
【问题讨论】:
-
winBattle在哪里声明?你打电话给experiencePoints了吗? -
您是否在任何地方声明过
function winBattle()?如果不是,那么这就是你的错误的原因。它与三元运算符的使用没有直接关系。 -
如果你打电话给
experiencePoints()会发生什么? -
该错误意味着
winBattle在您尝试访问它的范围内不存在。除了指出这一点,我们无能为力。如果您发布一个包含winBattle声明的完整示例,我们可能会判断您是否出错了。 -
你有一个错误,因为你的系统说没有定义函数 winBattle,而不是因为你使用三元运算符。错误信息一目了然,为什么不想按原样阅读呢?