在 javascript 中使用“return !0”有什么意义吗?

IT技术 javascript minify
2021-02-28 16:49:08

如果您转到 google 结果页面并运行rwt.toString(),您将看到此函数的返回调用是:

return !0;

我想不出任何原因为什么这不会总是这样true这只是 的简写true,还是这里还有更多内容?

1个回答

它总是正确的,但需要 2 个字节来下载(!0是 2 个字符)而不是 4 个字节来下载布尔值true

大多数 Javascript minifiers 将转换true!0和 false 为!1. 您可以通过var y = true;在 Google 的 Closure Compiler 上输入Simple optimizations来查看此示例http : //closure-compiler.appspot.com/home

@stureturn 1;返回一个number类型。如果有人将返回值与===or!==运算符一起使用,他们将从 中获得预期结果!0,但不会从 中获得预期结果1
2021-04-20 16:49:08
这很有趣。大多数 javascript 实现是否在不计算的情况下将 !0 和 !1 优化为 true 和 false?
2021-05-03 16:49:08
但是下载1只需要1个字节。返回1;会一样有效,不是吗?非零,我们都知道你不测试真,你测试不假。
2021-05-06 16:49:08
@Kekoa什么STU是说(纠正我,如果我错了,在这里,STU)是一个minifier将优化true!0false!1节省带宽。这些表达式得到由浏览器的JavaScript实现在线计算返回的布尔值true,并false分别,这就是为什么他们通过严格的平等(===)测试。
2021-05-07 16:49:08