在JavaScript中返回1或0而不是true或false是否有缺点?

Is there a downside to returning 1 or 0 instead of true or false in JavaScript?

本文关键字:true false 是否 有缺点 JavaScript 返回      更新时间:2023-09-26

出于代码压缩的考虑,我想将truefalse的实例分别更改为10。我不会做任何严格的布尔等号(如boolA === true)。这是一个安全的事情吗?

参考我的具体问题,我试图实现一个通用的.equals()方法,出现在每个对象上,可以给任何其他对象:

Object.prototype.equals=function(o){function f(a,b){for(i in a){j=a[i]if(typeof j=="object"?!f(j,b[i]):j!=b[i])return!1}return!0}return f(this,o)&&f(o,this)}
GitHub

我的目标是使这个和其他一堆基本实用程序的长度都小于140字节,这样我就可以更快地将我的web应用程序提供给我的用户,并向他们收取更少的数据。

这是不安全的,因为1 !== true0 !== false会有相同的行为。不过,它不会使浏览器崩溃。最终,这取决于你如何定义"安全"——这是主观的。

但是,您可以为true返回!0,为false返回!1,它们分别具有与返回true或false相同的行为,但这会使您的代码显着降低可读性。我的两分意见:不要做一个迷你的工作。为可读性和可维护性编写代码,如果您想减少代码的大小,那么在部署过程中使用适当的minifier。