[已解决]lodash源码之toFinite的一些疑问
- 源码
import toNumber from './toNumber.js'
function toFinite(value) {
if (!value) {
return value === 0 ? value : 0
}
value = toNumber(value)
if (value === INFINITY || value === -INFINITY) {
const sign = (value < 0 ? -1 : 1)
return sign * MAX_INTEGER
}
return value === value ? value : 0
}
export default toFinite
在第一个if判断的时候,里面为什么要加一个三元运算符呢??
!value,只有7种情况会为真
- NaN
- null
- undefined
- 0
- -0
- false
- ''
value 肯定要么是等于0,要么就是另外6个啊
直接返回0多简单
为啥要加一个三元运算,为啥为啥为啥??????作者肯定是有他的道理的,奈何目光太短浅了,所以上来请求一下各位
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
+0 === -0
这样可以保证输入是
-0
的时候,返回也是-0
。