我有一个存储false或true的变量,但我需要分别为0或1。我该怎么做呢?
当前回答
+ ! !允许你对一个变量应用这个,即使它是未定义的:
+!!undefined // 0
+!!false // 0
+!!true // 1
+!!(<boolean expression>) // 1 if it evaluates to true, 0 otherwise
其他回答
使用一元+运算符,将其操作数转换为数字。
+ true; // 1
+ false; // 0
当然,请注意,您仍然应该在服务器端清除数据,因为用户可以将任何数据发送到您的服务器,而不管客户端代码说了什么。
依我看,最好的解决办法是:
fooBar | 0
这在asm.js中用于强制整型。
将建议的方法放在jsben.ch中: https://jsben.ch/d33N1。
每个测试都会给出不同的结果,但是每个测试中最好的方法是位操作:0|bool / bool|0 / 1&bool / 1&bool / ~~bool。
一元的+运算符会处理这些:
var test = true;
// +test === 1
test = false;
// +test === 0
您自然希望在存储它之前在服务器上检查它,因此在服务器上执行此操作可能是一个更明智的地方。
在我的上下文中,React Native,我从布尔获取不透明度值,最简单的方法:使用一元+运算符。
+ true; // 1
+ false; // 0
这将布尔值转换为数字;
style={ opacity: +!isFirstStep() }
推荐文章
- Next.js React应用中没有定义Window
- 如何重置笑话模拟函数调用计数之前,每次测试
- 如何强制一个功能React组件渲染?
- 在javascript中从平面数组构建树数组
- 将Dropzone.js与其他字段集成到现有的HTML表单中
- 如何在AngularJS中观察路由变化?
- JavaScript DOM删除元素
- 将dd-mm-yyyy字符串转换为日期
- Javascript复选框onChange
- Javascript函数前导bang !语法
- Java中的&和&&有什么区别?
- 如何在页面上遍历所有DOM元素?
- 在JS/jQuery中触发按键/按键/按键事件?
- 如何每5秒重新加载页面?
- 避免浏览器弹出窗口拦截器