在JavaScript中,特别是JScript(一种旧版本的ECMAScript,现在更常见的是ES6+),jscript的一个变量不知道是字符串还是数组还是对象,判断他是否非空
时间: 2024-10-13 21:05:05 浏览: 20
web前端开发工程师 ECMAScript 6.0 简称ES6 Typora学习笔记
在JavaScript (包括ES6及以上版本) 中,如果你不确定一个变量的具体类型,可以使用`typeof`操作符来检查它是否为空。然而,`typeof`对于数组和null会返回特殊的值,所以你需要进一步检查。
以下是几种常见的方法来判断一个变量是否是非空的:
1. 对象和数组:
```javascript
function isNotEmpty(value) {
// 检查 null 和 undefined
if (value === null || value === undefined) return false;
// 对于数组,需要检查长度,0也是“非空”
if (Array.isArray(value)) return value.length > 0;
// 对于其他类型的值(如对象、字符串等)
return Boolean(value); // 使用Boolean转换,如果非空则结果为true
}
let myVariable; // 可能是任何类型
if (isNotEmpty(myVariable)) {
console.log('变量不是空');
} else {
console.log('变量是空');
}
```
2. 使用`Object.prototype.toString.call()`:
```javascript
function isNonEmpty(obj) {
return obj != null && Object.prototype.toString.call(obj) !== '[object Null]' && Object.prototype.toString.call(obj) !== '[object Undefined]';
}
let myVariable = []; // 或者 any other variable
if (isNonEmpty(myVariable)) {
// ...
}
```
在上述代码中,`Object.prototype.toString.call()` 返回一个表示对象类型的字符串,可以区分null和undefined。
阅读全文