如何检查变量的类型是否为Boolean类型?
我的意思是,有一些替代方案,例如:
if(jQuery.type(new Boolean()) === jQuery.type(variable))
//Do something..
但这对我来说并不是很好。
有没有更干净的方法来实现这一点?
发布于 2015-03-03 00:35:27
如果您只想检查原始值
typeof variable === 'boolean'
如果出于某种奇怪的原因,您使用构造函数创建了布尔值,那么这些布尔值实际上并不是布尔值,而是包含原始布尔值的对象,检查原始布尔值和使用new Boolean
创建的对象的一种方法是:
function checkBool(bool) {
return typeof bool === 'boolean' ||
(typeof bool === 'object' &&
bool !== null &&
typeof bool.valueOf() === 'boolean');
}
function checkBool(bool) {
return typeof bool === 'boolean' ||
(typeof bool === 'object' &&
bool !== null &&
typeof bool.valueOf() === 'boolean');
}
console.log( checkBool( 'string' )); // false, string
console.log( checkBool( {test: 'this'} )); // false, object
console.log( checkBool( null )); // false, null
console.log( checkBool( undefined )); // false, undefined
console.log( checkBool( new Boolean(true) )); // true
console.log( checkBool( new Boolean() )); // true
console.log( checkBool( true )); // true
console.log( checkBool( false )); // true
发布于 2015-03-03 00:27:17
您可以使用纯Javascript来实现此目的:
var test = true;
if (typeof test === 'boolean')
console.log('test is a boolean!');
发布于 2017-08-04 21:53:13
如果您希望您的函数也可以验证布尔对象,最有效的解决方案必须是:
function isBoolean(val) {
return val === false || val === true || val instanceof Boolean;
}
https://stackoverflow.com/questions/28814585
复制相似问题