【问题标题】:NaN JavaScript ResultNaN JavaScript 结果
【发布时间】:2018-03-19 21:07:31
【问题描述】:

我得到一个 NaN 结果。显然有些事情是不对的。但我无法弄清楚计算中有什么问题。代码如下:

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

【问题讨论】:

  • 您是否检查过video.duration 给出的是实际值?
  • 是的,它给出了一个浮点值,我得到 39856.6757
  • 也许你说得太早了?即在视频完全加载之前。可能需要提供Minimal, Complete, and Verifiable example
  • 刚刚发现我应该使用 onloadedmetadata 事件。

标签: javascript floating-point nan milliseconds


【解决方案1】:

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

【讨论】:

  • 是的,它是 video.duration 它的未定义但是当我像你在最后一行中那样使用浮点值时它工作正常
  • viideo.duration 什么时候有值?是否有触发事件(即加载视频)以便您知道何时可以使用 milliToHours 函数?如果没有更多细节或代码,就无法提供更多帮助。
猜你喜欢
  • 2020-12-29
  • 2014-07-22
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 2019-09-07
  • 2013-03-16
  • 2016-06-15
  • 2021-01-29
相关资源
最近更新 更多