2017-10-08 125 views
-1

我得到NaN結果。顯然有些事不對。但我無法弄清楚計算中出了什麼問題。繼承人代碼:NaN JavaScript結果

var totalTime = video.duration; 
var milliToHours = function (value) { 
    return value/60/60; 
} 
milliToHours (totalTime); 
// howerver it returns NaN in console 
+1

你有沒有檢查'video.duration'是給實際價值? –

+0

是的,它給出了我得到的浮點數值39856.6757 –

+2

也許你打電話過早?即在視頻完全加載之前。可能需要提供[最小化,完整和可驗證的示例](https://stackoverflow.com/help/mcve) –

回答

0

video.durationvideo.duration必須在函數執行時未定義。爲您的函數添加console.log(value);聲明。

var totalTime; 
 
var milliToHours = function(value) { 
 
    console.log(value); 
 
    return value/60/60; 
 
} 
 
console.log(milliToHours(totalTime)); // undefined => NaN 
 
totalTime = null; 
 
console.log(milliToHours(totalTime)); // null => 0 
 
totalTime = 39856.6757; 
 
console.log(milliToHours(totalTime)); // 39856.6757 => 11.071298805555555

+0

是的,它是video.duration它的未定義,但是當我使用浮點值,就像你在最後一行做的那樣,它工作正常 –

+0

什麼時候'viideo.duration'有一個值?是否有事件(即視頻加載)被觸發,以便您知道何時可以使用「milliToHours」功能?沒有更多的細節或代碼,沒有更多的幫助可以提供。 –