La reducción de Javascript por qué se reemplaza con falso con! 1 y es cierto con! 0 [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Hay algún punto de usar "return! 0" en javascript? 1 respuesta

Estoy escribiendo una aplicación usando Enyo2 que viene con una herramienta de minificación basada en UglifyJS. Me he dado cuenta de que:

var t = false

se sustituye por

var t=!1

De la misma manera se reemplaza true por! 0. Estoy seguro de que hay una buena explicación para eso, simplemente no puedo encontrarla. ¿Alguna idea?

Respuestas a la pregunta(4)

Su respuesta a la pregunta