JS中判断数据类型的四种方法
    		       		warning:
    		            这篇文章距离上次修改已过444天,其中的内容可能已经有所变动。
    		        
        		                
                在JavaScript中,可以使用以下四种方法来判断数据类型:
typeof操作符instanceof操作符Object.prototype.toString方法Array.isArray方法(用于判断是否为数组)
1. typeof 操作符
用来检测数据的类型,对于基础类型(string,number,boolean,undefined,symbol,bigint),除了null都可以正确判断。
console.log(typeof 'Hello'); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof function(){}); // "function"
console.log(typeof {}); // "object"
console.log(typeof null); // "object"
console.log(typeof []); // "object"
console.log(typeof Symbol()); // "symbol"
console.log(typeof BigInt(12345)); // "bigint"2. instanceof 操作符
判断某个实例是否属于某个构造函数的实例。
console.log('Hello' instanceof String); // false
console.log(new String('Hello') instanceof String); // true
 
console.log([] instanceof Array); // true
console.log({} instanceof Object); // true3. Object.prototype.toString 方法
可以判断出所有的JavaScript数据类型,包括基础类型和复杂类型。
console.log(Object.prototype.toString.call('Hello')); // "[object String]"
console.log(Object.prototype.toString.call(42)); // "[object Number]"
console.log(Object.prototype.toString.call(true)); // "[object Boolean]"
console.log(Object.prototype.toString.call(undefined)); // "[object Undefined]"
console.log(Object.prototype.toString.call(null)); // "[object Null]"
console.log(Object.prototype.toString.call(function(){})); // "[object Function]"
console.log(Object.prototype.toString.call({})); // "[object Object]"
console.log(Object.prototype.toString.call([])); // "[object Array]"
console.log(Object.prototype.toString.call(Symbol())); // "[object Symbol]"
console.log(Object.prototype.toString.call(BigInt(12345))); // "[object BigInt]"4. Array.isArray 方法
用于判断是否为数组。
console.log(Array.isArray([])); // true
console.log(Array.isArray({})); // false以上四种方法各有优缺点,具体使用时需根据场景选择合适的方法。
评论已关闭