企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
* Object.prototype.toString.call * instanceof * Array.isArray * typeof ## Object.prototype.toString.call(xxx) * 能够准确的区分数据的类型 * 返回的是对象内部的 [[class]] 属性 ``` // [object String] console.log(Object.prototype.toString.call("jerry")); // [object Number] console.log(Object.prototype.toString.call(12)) // [object Boolean] console.log(Object.prototype.toString.call(true)); // [object Undefined] console.log(Object.prototype.toString.call(undefined)); //[object Null] console.log(Object.prototype.toString.call(null)); //[object Object] console.log(Object.prototype.toString.call({name: "jerry"})); //[object Function] console.log(Object.prototype.toString.call(function(){})); //[object Array] console.log(Object.prototype.toString.call([])); //[object Date] console.log(Object.prototype.toString.call(new Date)); //[object RegExp] console.log(Object.prototype.toString.call(/\d/)); ``` ## 为什么直接用 obj.toString() 就不行呢 * 数组和函数都是 Object 的字类型 * 重写了 toString 的方法 ``` [1,3,2].toString() // ""1,3,2"" console.log.toString() // "function log() { [native code] }" ```