Семантика времени выполнения: оценка
UnaryExpression : ! UnaryExpression
1. Пусть expr будет результатом вычисления UnaryExpression. 2. Пусть oldValue будет! ToBoolean(? GetValue(expr)). 3. Если oldValue является true (истинно), вернуть false. 4. Вернуть истину true
Информационные ссылки
Стандарт ECMAScript — Раздел «13.5 Unary Operators» — https://tc39.es/ecma262/#sec-unary-operators
Стандарт ECMAScript — Раздел «13.5.7 Logical NOT Operator ( ! )» — https://tc39.es/ecma262/#sec-logical-not-operator