不知何故這不起作用:轉變成if/else語句
if(direction != 'leftnav') direction = 'leftnav';
if(direction == 'leftnav') direction = 'rightie';
這永遠是作爲「rightie」
我傾向於認爲這是因爲他們那種覆蓋。這可以用if語句來完成嗎? 謝謝:)
不知何故這不起作用:轉變成if/else語句
if(direction != 'leftnav') direction = 'leftnav';
if(direction == 'leftnav') direction = 'rightie';
這永遠是作爲「rightie」
我傾向於認爲這是因爲他們那種覆蓋。這可以用if語句來完成嗎? 謝謝:)
!==
和===
是strict equality checks。
你可能只是想!=
,如下所示:
if (direction != 'leftnav') {
direction = 'leftnav';
}
else {
direction = 'rightie';
}
或爲這些簡單的任務更重要的是,使用ternary operator:
direction = direction == 'leftnav' ? 'rightie' : 'leftnav';
想想你所要求的邏輯:
如果不是leftnav,那就把它做成leftnav。
[下一個陳述 - 它已被重新分配後]
如果它是leftnav,使它正確。
您正在尋找
if(direction !== 'leftnav') direction = 'leftnav';
else if(direction == 'leftnav') direction = 'rightie'; // can just be "else"
當然,他們覆蓋,看你在做什麼有:
if(direction !== 'leftnav') direction = 'leftnav';
if(direction == 'leftnav') direction = 'rightie';
第一個語句設置direction
爲「leftnav」如果它是什麼其他。所以當你第二條語句時,direction
將永遠是'leftnav'。第二個意思是說else if
而不是if
?
你可以用'else'而不是'else if'作爲第二個。 – 2011-04-07 02:38:22
!==不是問題,但如果其他人修好了!非常感謝:) – cmplieger 2011-04-07 02:35:33
我會盡快接受答案:) – cmplieger 2011-04-07 02:36:21
這是因爲如果你通過第一個if語句,你更新了代碼集的'方向'兩次。也就是說,如果'direction = 5',第一個'if'設置'direction ='leftnav''。然後你會通過第二個'if',把它設置爲'rightie'。對於這樣的情況,你應該真的使用'if/else'塊。 – 2011-04-07 02:52:28