为了账号安全,请及时绑定邮箱和手机立即绑定

lodash.js createSet函数的疑问

lodash.js createSet函数的疑问

BIG阳 2018-10-24 19:53:57
题目描述在看lodash源码的时候看到createSet函数时存在这样一个判断 Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY 不太理解后半段的(1 / setToArray(new Set([,-0]))[1]) == INFINITY的意思相关代码const createSet = (Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY)    ? (values) => new Set(values)   : () => {}
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

对于 Set 来说, -0 和 +0 是有区别的, 但在 es2015 后规范指定 -0 和 +0 相等. 存在浏览器兼容问题. 如果是遵循标准的,则 new Set([,-0]))[1] 返回 0, 否则会返回 -01 / -0 的结果为 -Infinity 不等于 Infinity, 此时使用空对象来作为标准 Set 的替代实现,

查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 598 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号