是!0和!1不仅仅​​是真/假的简写?

Chr*_*son 10 javascript boolean shorthand

通过阅读一些代码,我发现了使用!0!1.我知道这些都是写作的短方式truefalse.

!0 === true
!1 === false
Run Code Online (Sandbox Code Playgroud)

这当然可以节省几个字节,但还有其他原因可以使用它吗?

这种写作方式有名称吗?

Joã*_*lva 8

大多数JavaScript 缩小工具(如UglifyJS)都会生成该代码,因为它更短且在语义上相同.例如,给定:

var x = true;
if (x) { 
  alert(x); 
}
Run Code Online (Sandbox Code Playgroud)

UglifyJS将生成var x=!0;x&&alert(x).

通常,您不需要使用该样式编写代码; 让minifiers他们的工作:-).