今天在看位操作符,在非(NOT)小节中,非是指返回数值的反码。本质是操作数的负值减1。
如 ~2 = -3.
但用Number()对上述四个值取值分别是
Number(NaN) = NaN,
Number(null) = 0,
Number(false) = 0,
Number(undefined) = NaN.
但取非值为什么都是一样的捏?
今天在看位操作符,在非(NOT)小节中,非是指返回数值的反码。本质是操作数的负值减1。
如 ~2 = -3.
但用Number()对上述四个值取值分别是
Number(NaN) = NaN,
Number(null) = 0,
Number(false) = 0,
Number(undefined) = NaN.
但取非值为什么都是一样的捏?
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
因为ECMAScript规定,两张图告诉你一切!
所以说,他们最终的结果都是
0
,自然~0===-1
了。