JavaScript如何判断变量是否为“布尔值”类型?
时间: 2024-09-09 12:12:25 浏览: 201
JavaScript判断变量是否为空的自定义函数分享
在JavaScript中,直接判断一个变量是否为布尔类型并不像其他语言那样有一个内置的函数或操作符。你可以通过以下几种方式来确认:
1. **使用typeof运算符**:
```javascript
let varName = true;
if (typeof varName === 'boolean') {
console.log(varName + " is a boolean");
}
```
`typeof`会返回一个字符串,"boolean"就是我们想要的结果。
2. **比较with undefined**:
```
function isBoolean(obj) {
return obj === true || obj === false || (typeof obj === 'object' && obj !== null && Object.prototype.toString.call(obj) === '[object Boolean]');
}
```
这种方法更全面,它也考虑了`new Boolean()`构造函数创建的`Boolean`实例。
3. **使用ES6的严格相等(===)**:
```javascript
const isBooleanStrict = val => val === true || val === false;
```
这里仅检查原始的布尔值。
然而,对于大部分现代浏览器和Node.js环境,由于JavaScript引擎优化,很多情况下可以直接比较`varName === true`或`varName === false`,即使变量是其他类型的值,只要它的值是布尔类型,就会被认为是布尔类型的。
阅读全文