Javascript else if语句被忽略
我有一个函数,如果Javascript else if语句被忽略,javascript,Javascript,我有一个函数,如果pan.cost>0,则该函数必须执行不同的操作 那么让我们假设curPos=3和pan.cost=-1 现在当我这样做的时候,不管怎样,if(curPos+1===5 | | 30)总是被使用,即使curPos+1是2,3,4,6等(只要pan.cost
pan.cost>0
,则该函数必须执行不同的操作
那么让我们假设curPos=3
和pan.cost=-1
现在当我这样做的时候,不管怎样,if(curPos+1===5 | | 30)
总是被使用,即使curPos+1
是2,3,4,6等(只要pan.cost<0
)
现在我将console.log(curPos+1)
放在else if语句中,它还表示它不符合要求
function action(curPos)
{
var pan = panel[curPos];
if(pan.cost > 0)
{
}
else if(curPos + 1 === 5 || 39)
{
console.log(curPos + 1);
}
else if(curPos + 1 === 3)
{
console.log("should be here");
}
}
线路
curPos+1==5 | | 39
始终计算为truthy,因为它是:
(curPos+1==5)| | 39
而39
是一个真实的值 线路
curPos+1==5 | | 39
始终计算为truthy,因为它是:
(curPos+1==5)| | 39
而39
是一个真实的值 如果(curPos+1==5 | | 39)
将始终计算为true。看看你的头发或管子后面的部分<代码>如果(39)
将始终为真。如果(curPos+1==5 | | 39)
将始终计算为真。看看你的头发或管子后面的部分<代码>如果(39)将始终为真。39
将始终返回真且成本不存在。39
将始终返回真且成本不存在。<
function action(curPos)
{
var pan = panel[curPos];
var newCurPos = (curPost + 1);
if(pan.cost > 0)
{
}
else if(newCurPos === 5 || newCurPos === 39)
{
console.log(newCurPos);
}
else if(newCurPos === 3)
{
console.log("should be here");
}
}
试试这个:
function action(curPos)
{
var pan = panel[curPos];
var newCurPos = (curPost + 1);
if(pan.cost > 0)
{
}
else if(newCurPos === 5 || newCurPos === 39)
{
console.log(newCurPos);
}
else if(newCurPos === 3)
{
console.log("should be here");
}
}
问题是if(curPos+1===5 | | | 39)
,你需要if((curPos+1)==5 | | | |(curPos+1)==39)
没有人觉得奇怪,他将pan
设置为似乎是一个数字,然后下一行他将其视为一个对象?@Waxi yes抱歉,该对象在其他地方声明。但我认为这与此无关question@Waxi,我们不知道面板[curPos]
的计算结果是什么。我不知道你为什么会认为这是一个数字。@MikeMcCaughan是的,你是对的,我也不知道我为什么会这么想。问题是如果(curPos+1==5 | | 39)
,你需要如果((curPos+1)==5 | | |(curPos 1)==39)
没有人觉得奇怪,他将pan
设置为一个数字,然后下一行他将其视为一个对象?@Waxi是的,对不起,该对象在其他地方声明。但我认为这与此无关question@Waxi,我们不知道面板[curPos]
的计算结果是什么。我不知道你为什么会认为这是一个数字。@MikeMcCaughan是的,你是对的,我也不知道我为什么会这样想。谢谢!将接受你的回答(5分钟内),因为你是第一个。但是所有其他的答案都很好!令人惊叹的。很高兴有帮助。谢谢!将接受你的回答(5分钟内),因为你是第一个。但是所有其他的答案都很好!令人惊叹的。很高兴这有帮助。