参考答案:
typeof
1console.log(typeof 123); // "number" 2console.log(typeof 'abc'); // "string" 3console.log(typeof true); // "boolean" 4console.log(typeof undefined);// "undefined" 5console.log(typeof Symbol()); // "symbol" 6console.log(typeof 123n); // "bigint" 7console.log(typeof {}); // "object" 8console.log(typeof []); // "object" 9console.log(typeof null); // "object" (历史遗留问题) 10console.log(typeof (()=>{}));// "function"
优点:
缺点:
null
和 object
。"object"
。Date
、RegExp
等)。instanceof
1console.log([] instanceof Array); // true 2console.log({} instanceof Object); // true 3console.log(/abc/ instanceof RegExp); // true 4console.log(new Date() instanceof Date); // true
优点:
Array
、Date
、RegExp
等引用类型。缺点:
123 instanceof Number // false
)。Object.prototype.toString.call()
1console.log(Object.prototype.toString.call(123)); // "[object Number]" 2console.log(Object.prototype.toString.call('abc')); // "[object String]" 3console.log(Object.prototype.toString.call(null)); // "[object Null]" 4console.log(Object.prototype.toString.call(undefined));// "[object Undefined]" 5console.log(Object.prototype.toString.call([])); // "[object Array]" 6console.log(Object.prototype.toString.call({})); // "[object Object]" 7console.log(Object.prototype.toString.call(new Date));// "[object Date]"
优点:
null
和 undefined
。缺点:
Array.isArray()
1console.log(Array.isArray([])); // true 2console.log(Array.isArray({})); // false
优点:
缺点:
constructor
1console.log((123).constructor === Number); // true 2console.log('abc'.constructor === String); // true 3console.log([].constructor === Array); // true 4console.log({}.constructor === Object); // true
优点:
缺点:
null
和 undefined
没有 constructor
属性,会报错。constructor
被改写,结果可能不可靠。Object.is()
虽然不是专门判断类型的方法,但在判断 值是否相等(尤其是区分 NaN
、+0
和 -0
)时很有用:
1console.log(Object.is(NaN, NaN)); // true 2console.log(Object.is(+0, -0)); // false 3console.log(Object.is(0, -0)); // false
优点:
缺点:
最近更新时间:2025-08-21
题库维护不易,您的支持就是我们最大的动力!