2017-10-08 12 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.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'関数をいつ使用できるかを知るために起動されるイベント(ビデオがロードされています)がありますか?詳細やコードがなければ、提供できる支援はそれほど多くありません。 –