今天在看位操作符,在非(NOT)小节中,非是指返回数值的反码。本质是操作数的负值减1。
如 ~2 = -3.
但用Number()对上述四个值取值分别是
Number(NaN) = NaN, Number(null) = 0, Number(false) = 0, Number(undefined) = NaN.
但取非值为什么都是一样的捏?
因为ECMAScript规定,两张图告诉你一切!
所以说,他们最终的结果都是 0,自然 ~0===-1了。
0
~0===-1
1.4m articles
1.4m replys
5 comments
57.0k users