在JavaScript中返回1或0而不是true或false是否有缺点?
Is there a downside to returning 1 or 0 instead of true or false in JavaScript?
出于代码压缩的考虑,我想将true
和false
的实例分别更改为1
和0
。我不会做任何严格的布尔等号(如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 !== true
和0 !== false
会有相同的行为。不过,它不会使浏览器崩溃。最终,这取决于你如何定义"安全"——这是主观的。
但是,您可以为true返回!0
,为false返回!1
,它们将分别具有与返回true或false相同的行为,但这会使您的代码显着降低可读性。我的两分意见:不要做一个迷你的工作。为可读性和可维护性编写代码,如果您想减少代码的大小,那么在部署过程中使用适当的minifier。
相关文章:
- JavaScript-切换“;全部检查”;复选框true/false
- true==false以某种方式计算为true
- Javascript似乎在说true ==false
- JavaScript onkeydown, return true,false
- 从异步函数返回true/false以用于同步if()
- 函数返回undefined而不是true/false
- 为什么true/true是1,true/false是无穷大,false/true是0,false/false是NaN
- 检查对象数组是否包含布尔值true/false
- 函数:根据字符串中是否存在子字符串返回 True/False
- 如何将 ng-show 与控制器中返回 true/false 的函数一起使用
- 在input.checked=true/false _without_ jQuery上触发一个事件
- jQuery javascript未正确返回true/false
- 如何从嵌套的jquery回调函数中返回true/false
- 如何在骨干模型属性中设置布尔值true/false
- 如何使用angular或javascript在基于true/false返回的html中显示值
- 基于true/false变量显示/隐藏进度条
- Node.js在返回true/false时停止函数
- 是否可以将true/false值传递给ajax函数
- 根据Webix中的复选框值编辑true/false
- Meteor:设置车把变量true/false