使用parseFloat()进行Javascript类型强制。toFixed()?
有人能彻底解释一下,为什么第三个表达式返回NaN使用parseFloat()进行Javascript类型强制。toFixed()?,javascript,Javascript,有人能彻底解释一下,为什么第三个表达式返回NaN NaN || 0 // 0 parseFloat("s").toFixed() // NaN parseFloat("s").toFixed() || 0 // NaN 第1行:NaN为假,因此NaN | | 0变为0 方法.toFixed产生一个字符串,因此 第2行:parseFloat(“s”)->NaN(这是值NaN),然后NaN.toFixed()->“NaN”。。。因此,结果是字符串“NaN”(不是值NaN) 第3行:与第2行相同
NaN || 0 // 0
parseFloat("s").toFixed() // NaN
parseFloat("s").toFixed() || 0 // NaN
第1行:NaN为假,因此
NaN | | 0
变为0
方法.toFixed
产生一个字符串,因此
第2行:parseFloat(“s”)
->NaN
(这是值NaN
),然后NaN.toFixed()
->“NaN”
。。。因此,结果是字符串“NaN”(不是值NaN)
第3行:与第2行相同,因此,由于非空字符串为“truthy”,“NaN”| 0
->“NaN”
(注意,仍然是字符串)
另外,我不认为这里有任何类型的强制(尽管我可能错了)第1行:NaN是错误的,因此
NaN | | 0
变成了0
方法.toFixed
产生一个字符串,因此
第2行:parseFloat(“s”)
->NaN
(这是值NaN
),然后NaN.toFixed()
->“NaN”
。。。因此,结果是字符串“NaN”(不是值NaN)
第3行:与第2行相同,因此,由于非空字符串为“truthy”,“NaN”| 0
->“NaN”
(注意,仍然是字符串)
另外,我不认为这里有任何类型的强制(尽管我可能错了)这是因为你得到了
“NAN”| | 0
而不是NAN | | 0
作为parseFloat(“S”)。toFixed
将返回“NAN”
而不是NAN
这是因为你得到了“NAN”| | 0
notNAN | | 0
asparseFloat(“s”)。toFixed
将返回“NAN”
notNAN
否parseFloat('s')
实际上返回NaN
而不是“NaN”
否parseFloat('s')
实际上返回NaN
而不是“NaN”
你说得很清楚,这里的关键点是。toFixed返回一个字符串而不是数字,即使它处理的是一个有效的浮点数,对吗?有点.toFixed
是javascriptNumber
对象的一种方法,它返回一个字符串
,NaN
(尽管不是数字)是一个javascript数字
,因此,toFixed返回一个字符串
。。。哦,是的,toFixed总是返回一个字符串
你说得很清楚,这里的关键点是。toFixed返回一个字符串而不是数字,即使它处理的是一个有效的浮点数,对吗?有点.toFixed
是javascriptNumber
对象的一种方法,它返回一个字符串
,NaN
(尽管不是数字)是一个javascript数字
,因此,toFixed返回一个字符串
。。。哦,是的,toFixed总是返回一个字符串