25个最基本的JavaScript面试问题及答案
1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typeof bar === "object" 是检查 bar 是否对象的可靠方法,令人惊讶的是在JavaScript中 null 也被认为是对象! 因此,令大多数开发人员惊讶的是,下面的代码将输出 true (而不是false) 到控制台: var bar = null; console.log(typeof bar === "object"); // logs true! 只要清楚这一点,同时检查 bar 是否为 null,就可以很容易地避免问题: console.log((bar !== null) && (typeof bar === "object")); // logs false 要答全问题,还有其他两件事情值得注意: 首先,上述解决方案将返回 false,当 bar 是一个函数的时候。在大多数情况下,这是期望行为,但当你也想对函数返回 true 的话,你可以修改上面的解决方案为: console.log((bar !== null) && ((typeof bar === "object") || (typeof bar === "function"))); 第二,上述解决方案将返回 true,当 bar 是一个数组(例如,当 var