如何检查类型是否为布尔值
2022-08-29 23:32:47
如何检查变量的类型是否为布尔值类型?
我的意思是,有一些替代方案,例如:
if(jQuery.type(new Boolean()) === jQuery.type(variable))
//Do something..
但这对我来说似乎并不漂亮。
有没有更清洁的方法来实现这一点?
如何检查变量的类型是否为布尔值类型?
我的意思是,有一些替代方案,例如:
if(jQuery.type(new Boolean()) === jQuery.type(variable))
//Do something..
但这对我来说似乎并不漂亮。
有没有更清洁的方法来实现这一点?
使用纯JavaScript,您可以简单地使用并执行类似or之类的操作,然后它将返回...typeof
typeof false
typeof true
"boolean"
但这不是唯一的方法,我正在下面创建函数,以显示您可以在JavaScript中检查布尔值的不同方法,也可以在一些新框架中执行此操作的不同方法,让我们从这个开始:
function isBoolean(val) {
return val === false || val === true;
}
或单线 ES6 方式 ...
const isBoolean = val => 'boolean' === typeof val;
并称它像!
isBoolean(false); //return true
同样在Underscore源代码中,他们像这样检查它(在函数名称的开头使用_.):
isBoolean = function(obj) {
return obj === true || obj === false || toString.call(obj) === '[object Boolean]';
};
同样在jQuery中,您可以像这样检查它:
jQuery.type(true); //return "boolean"
在 React 中,如果使用 propTypes,你可以检查一个值是否为布尔值,如下所示:
MyComponent.propTypes = {
children: PropTypes.bool.isRequired
};
如果使用 TypeScript,则还可以使用类型布尔值:
let isDone: boolean = false;
还有另一种方法是将值转换为布尔值,然后查看它是否完全相同,如下所示:
const isBoolean = val => !!val === val;
或类似:
const isBoolean = val => Boolean(val) === val;
并称之为!
isBoolean(false); //return true
不建议为此使用任何框架,因为它实际上是JavaScript中的简单检查。