1. 使用 typeof
操作符
typeof
操作符可以用来判断一个变量的基本类型
let a = 42;
console.log(typeof a); // 输出 "number"
a = "Hello";
console.log(typeof a); // 输出 "string"
a = true;
console.log(typeof a); // 输出 "boolean"
a = {};
console.log(typeof a); // 输出 "object"
a = [];
console.log(typeof a); // 输出 "object"(数组被认为是对象)
a = null;
console.log(typeof a); // 输出 "object"(特例,null 被认为是空对象引用)
a = undefined;
console.log(typeof a); // 输出 "undefined"
a = function() {};
console.log(typeof a); // 输出 "function"
2. 使用 Array.isArray()
判断数组
Array.isArray()
是用来判断一个变量是否为数组的方法。
let arr = [1, 2, 3];
console.log(Array.isArray(arr)); // 输出 true
let notArr = {};
console.log(Array.isArray(notArr)); // 输出 false
3. 使用 instanceof
操作符
instanceof
操作符用来检测构造函数的原型链中是否存在某个对象的原型。
let date = new Date();
console.log(date instanceof Date); // 输出 true
let obj = {};
console.log(obj instanceof Object); // 输出 true
let arr = [];
console.log(arr instanceof Array); // 输出 true
let num = 42;
console.log(num instanceof Number); // 输出 false(因为 42 是原始类型,不是 Number 对象)
4. 使用 Object.prototype.toString.call()
方法
这是一种比较通用和精确的方法,可以判断 JavaScript 中几乎所有类型的变量。
let obj = {};
console.log(Object.prototype.toString.call(obj)); // 输出 "[object Object]"
let arr = [];
console.log(Object.prototype.toString.call(arr)); // 输出 "[object Array]"
let num = 42;
console.log(Object.prototype.toString.call(num)); // 输出 "[object Number]"
let str = "Hello";
console.log(Object.prototype.toString.call(str)); // 输出 "[object String]"
let bool = true;
console.log(Object.prototype.toString.call(bool)); // 输出 "[object Boolean]"
let date = new Date();
console.log(Object.prototype.toString.call(date)); // 输出 "[object Date]"
let func = function() {};
console.log(Object.prototype.toString.call(func)); // 输出 "[object Function]"
let regex = /abc/;
console.log(Object.prototype.toString.call(regex)); // 输出 "[object RegExp]"
let error = new Error();
console.log(Object.prototype.toString.call(error)); // 输出 "[object Error]"
let nullValue = null;
console.log(Object.prototype.toString.call(nullValue)); // 输出 "[object Null]"
let undefinedValue = undefined;
console.log(Object.prototype.toString.call(undefinedValue)); // 输出 "[object Undefined]"
5. 使用 typeof
与 null
的特殊判断
需要注意的是,typeof null
返回 "object",因为在 JavaScript 中将 null
错误地归类为对象。因此,如果要判断一个变量是否为 null
,可以使用 === null
来做精确判断。
let nullValue = null;
console.log(typeof nullValue); // 输出 "object"
console.log(nullValue === null); // 输出 true
标签:输出,Object,console,log,检测,object,数据类型,几种,let
From: https://blog.csdn.net/abc123abccc/article/details/140455991