https://tc39.github.io/ecma262/#sec-bitwise-not-operator
Runtime Semantics: Evaluation#
UnaryExpression:~UnaryExpression
Let expr be the result of evaluating UnaryExpression.
Let oldValue be ? ToInt32(? GetValue(expr)).
Return the result of applying bitwise complement to oldValue. The result is a signed 32-bit integer.
这里面 ? GetValue(expr)
前面为什么要带个问号?表示什么意思? ? ToInt32
前面也带了。
自己找到了
https://tc39.github.io/ecma262/#sec-algorithm-conventions
Abstract operations referenced using the functional application style and the method application style that are prefixed by ? indicate that ReturnIfAbrupt should be applied to the resulting Completion Record. For example, ? operationName() is equivalent to ReturnIfAbrupt(operationName()). Similarly, ? someValue.operationName() is equivalent to ReturnIfAbrupt(someValue.operationName()).