我有一个存储false或true的变量,但我需要分别为0或1。我该怎么做呢?
当前回答
将建议的方法放在jsben.ch中: https://jsben.ch/d33N1。
每个测试都会给出不同的结果,但是每个测试中最好的方法是位操作:0|bool / bool|0 / 1&bool / 1&bool / ~~bool。
其他回答
在我的上下文中,React Native,我从布尔获取不透明度值,最简单的方法:使用一元+运算符。
+ true; // 1
+ false; // 0
这将布尔值转换为数字;
style={ opacity: +!isFirstStep() }
使用一元+运算符,将其操作数转换为数字。
+ true; // 1
+ false; // 0
当然,请注意,您仍然应该在服务器端清除数据,因为用户可以将任何数据发送到您的服务器,而不管客户端代码说了什么。
我对所有建议的答案创建了一个JSperf比较。
TL;DR -当前所有浏览器的最佳选择是:
val | 0;
.
更新:
似乎这些天它们都是完全相同的,除了Number()函数是最慢的,而最好的val === true ?1: 0;。
let integerVariable = booleanVariable * 1;
输入的方法是:
Number(true) // 1
Number(false) // 0