2017-10-08 215 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”功能?没有更多的细节或代码,没有更多的帮助可以提供。 –