我尝试在下面的代码块中,isNaN返回true。该值不是NaN,为什么返回值为真?
true 06-19 12:20:30.200
var t = d3.timeParse("%Y-%m-%d %H:%M:%S.%L")("2022-06-19 12:20:30.200");
v = d3.timeFormat("%m-%d %H:%M:%S.%L")(t)
var isNan = isNaN(v)
console.log(isNan,v)<script src="https://unpkg.com/d3@7.0.4/dist/d3.min.js"></script>
发布于 2022-06-17 18:05:31
您应该使用Number.isNaN()代替。isNaN()的全局版本有一些令人困惑的行为。
当isNaN函数的参数不是Number类型时,该值首先被胁迫为一个数字。然后对结果值进行测试,以确定其是否为NaN。
var t = d3.timeParse("%Y-%m-%d %H:%M:%S.%L")("2022-06-19 12:20:30.200");
v = d3.timeFormat("%m-%d %H:%M:%S.%L")(t)
var isNan = Number.isNaN(v)
console.log(isNan,v)<script src="https://unpkg.com/d3@7.0.4/dist/d3.min.js"></script>
https://stackoverflow.com/questions/72663095
复制相似问题