我有一个存储false或true的变量,但我需要分别为0或1。我该怎么做呢?
当前回答
我更喜欢用数字函数。它接受一个对象并将其转换为一个数字。
例子:
var myFalseBool = false;
var myTrueBool = true;
var myFalseInt = Number(myFalseBool);
console.log(myFalseInt === 0);
var myTrueInt = Number(myTrueBool);
console.log(myTrueInt === 1);
你可以在jsFiddle中测试它。
其他回答
你也可以添加0,使用shift运算符或xor:
val + 0;
val ^ 0;
val >> 0;
val >>> 0;
val << 0;
这些答案和其他答案的速度相似。
在JavaScript中,布尔到整数的转换可以通过以下方式完成:
使用数量() 使用三元 使用一元操作符 使用算术运算符 使用位操作符 使用位移位操作符
在之前的回答中,其中一些已经被涵盖,但是,你可以发现一些缺失的内容如下:
// using arithmetic operators
true + 0; // 1
false + 0; // 0
true - 0; // 1
false - 0; // 0
true * 1 // 1
false * 1 // 0
true / 1; // 1
false / 1; // 0
// using bitwise operators
true & 1; // 1
false & 1; // 0
true | 0; // 1
false | 0; // 0
true ^ 0; // 1
false ^ 0; // 0
// using bitwise shift operators
true >> 0; // 1
false >> 0; // 0
true >>> 0; // 1
false >>> 0; // 0
true << 0; // 1
false << 0; // 0
这些工作是因为JavaScript在执行这些操作时在内部将布尔值强制转换为整数等价物。
需要注意的一点是,当您不确定变量是否总是具有布尔值时,所有这些方法(除了使用三元操作符)都可能返回NaN。
为那些有兴趣了解更多的人写了一篇博客。
Javascript有一个三元操作符,你可以使用:
var i = result ? 1 : 0;
输入的方法是:
Number(true) // 1
Number(false) // 0
所有浏览器都支持,支持输入布尔值或布尔值的字符串表示形式
var yourVarAsStringOrBoolean;
yourVarAsStringOrBoolean = "true"; //1
yourVarAsStringOrBoolean = "True"; //1
yourVarAsStringOrBoolean = "false"; //0
yourVarAsStringOrBoolean = false; //0
var resultAsInterger = Number(JSON.parse(yourVarAsStringOrBoolean.toString().toLowerCase()));
使用Chrome控制台检查它,它的工作
Number(JSON.parse(false.toString().toLowerCase()));
Number(JSON.parse("TRUE".toString().toLowerCase()));
推荐文章
- 在每个列表元素上调用int()函数?
- 使用jQuery改变输入字段的类型
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用jQuery以像素为整数填充或边距值
- 检查是否选择了jQuery选项,如果没有选择默认值
- Next.js React应用中没有定义Window
- 如何重置笑话模拟函数调用计数之前,每次测试
- 如何强制一个功能React组件渲染?
- 在javascript中从平面数组构建树数组
- 将Dropzone.js与其他字段集成到现有的HTML表单中
- 如何在AngularJS中观察路由变化?
- JavaScript DOM删除元素
- 将dd-mm-yyyy字符串转换为日期
- Javascript复选框onChange
- Javascript函数前导bang !语法