javascript是否有奇怪的行爲從三元語句返回值?下面是我寫的,從三元語句返回一個值的應用程序的功能:確實javascript有奇怪的行爲從三元語句返回函數值?
function getFlowAmount(fromRegionName, toRegionName)
{
return
_reportPeriodId === 1 ?
mapData[toRegionName + 'Region']['NetFlow' + fromRegionName ] :
mapData[toRegionName + 'Region']['NetFlowChange' + fromRegionName];
}
上面返回undefined即使開發工具的手錶顯示的值應返回,所以我在改寫了函數的函數更加模塊化和冗長的方式是這樣的:
function getFlowAmount(fromRegionName, toRegionName)
{
var flowAmount = 0;
if(_reportPeriodId === 1) flowAmount = mapData[toRegionName + 'Region']['NetFlow' + fromRegionName ];
else flowAmount = mapData[toRegionName + 'Region']['NetFlowChange' + fromRegionName];
return flowAmount;
}
當我改寫了javascript函數如上圖所示,該功能開始返回預期值。那麼javascript有奇怪的行爲從三元語句返回函數值?或者我在上面的原始函數中做了某種類型的語法或邏輯錯誤?
擊敗我們所有人吧XD –
都對此有任何聰明的解決方法?或者JavaScript無條件強迫我把eval表達式放在第一行? – user7066345
@ user7066345:我想你可以試着把表達式放在圓括號中,然後把第一個左括號放在第一行。這應該會啓動表達式而不會嚴重影響代碼格式,並且仍應評估爲相同的結果。 – David