10

阅读一些代码,我发现了!0and的用法!1。我意识到这些是较短的写作方式truefalse.

!0 === true
!1 === false

这当然节省了几个字节,但是还有其他使用它的理由吗?

这种写法有名字吗?

4

1 回答 1

8

大多数 JavaScript缩小工具,例如UglifyJS,都会生成该代码,因为它更短且语义等效。例如,给定:

var x = true;
if (x) { 
  alert(x); 
}

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

通常,您不需要使用这种风格编写代码;让缩小器他们的工作:-)。

于 2012-09-01T21:47:53.140 回答