参考答案:
typeof1console.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 等)。instanceof1console.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
优点:
缺点:
constructor1console.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

题库维护不易,您的支持就是我们最大的动力!