37个JavaScript基本面试问题和解答
发布日期:2021-07-01 00:43:50 浏览次数:2 分类:技术文章

本文共 577 字,大约阅读时间需要 1 分钟。

1、使用typeof bar ===“object”来确定bar是否是一个对象时有什么潜在的缺陷?这个陷阱如何避免?

尽管typeof bar ===“object”是检查bar是否是对象的可靠方法,但JavaScript中令人惊讶的问题null也被认为是一个对象!

因此,对于大多数开发人员来说,下面的代码会将true(而不是false)打印到控制台:

var bar = null;console.log(typeof bar === "object"); // logs true!

只要知道这一点,就可以通过检查bar是否为空来轻松避免该问题:

console.log((bar !== null) && (typeof bar === "object")); // logs false

为了让我们的答案更加的完整,还有两件事值得注意: 首先,如果bar是一个函数,上面的解决方案将返回false。在大多数情况下,这是所期望的行为,但是在您希望函数返回true的情况下,您可以将上述解决方案修改为:

console.log((bar !== null) && ((typeof bar === "object") || (typeof bar === "function")));

其次,如果bar是数组,则上述解决方案将返回true(例如,如

转载地址:https://m528964214.blog.csdn.net/article/details/82947715 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JavaScript 2018 中即将迎来的新功能
下一篇:php基本排序算法

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月09日 06时46分49秒