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

为什么~NaN,~null,~false,~undefined都是-1

为什么~NaN,~null,~false,~undefined都是-1

POPMUISE 2018-11-07 13:15:41
今天在看位操作符,在非(NOT)小节中,非是指返回数值的反码。本质是操作数的负值减1。如 ~2 = -3.但用Number()对上述四个值取值分别是Number(NaN) = NaN,Number(null) = 0,Number(false) = 0,Number(undefined) = NaN.但取非值为什么都是一样的捏?
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

因为ECMAScript规定,两张图告诉你一切!

https://img1.sycdn.imooc.com//5c07759f0001209b09840295.jpg

https://img1.sycdn.imooc.com//5c0775aa0001b3b812490418.jpg

所以说,他们最终的结果都是 0,自然 ~0===-1了。

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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信