猿问

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

今天在看位操作符,在非(NOT)小节中,非是指返回数值的反码。本质是操作数的负值减1。

如 ~2 = -3.

但用Number()对上述四个值取值分别是

Number(NaN) = NaN,

Number(null) = 0,

Number(false) = 0,

Number(undefined) = NaN.

但取非值为什么都是一样的捏?

POPMUISE
浏览 489回答 1
1回答

函数式编程

因为ECMAScript规定,两张图告诉你一切!所以说,他们最终的结果都是 0,自然 ~0===-1了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答