Scala.js中如何提前判断Double类型变量是否为NaN?
在Scala.js中判断Double是否为NaN
在Scala.js里,你可以通过两种可靠的方式判断变量是否为NaN:
方法一:使用Scala标准库的Double.isNaN方法
直接调用Scala Double类型自带的isNaN方法,这是最贴合Scala语法的方式:
import scala.scalajs.js import scala.scalajs.js.Date import org.scalajs.dom.window.alert val num: Double = new Date("a").getTime if (num.isNaN) { alert("num是无效的数值(NaN)") } else { alert((num + 1).toString) }
方法二:使用JavaScript原生的js.Number.isNaN方法
Scala.js可以直接调用JavaScript的API,js.Number.isNaN是JavaScript提供的精准判断NaN的方法,只会对真正的NaN返回true:
import scala.scalajs.js import scala.scalajs.js.Date import org.scalajs.dom.window.alert val num: Double = new Date("a").getTime if (js.Number.isNaN(num)) { alert("num是无效的数值(NaN)") } else { alert((num + 1).toString) }
注意事项
不要使用全局的isNaN函数(即js.isNaN),因为它会将非数值类型先转换为数值再判断,可能导致误判(比如js.isNaN("abc")也会返回true),而上面两种方法只会针对真正的NaN值做判断,准确性更高。
内容的提问来源于stack exchange,提问作者R A
相关产品推荐
相关产品推荐

