经验分享 | 10 个最基本的JS面试问题及答案
来源:互联网 发布:php去掉空格 编辑:程序博客网 时间:2024/05/21 05:40
本文来源于阿里云-云栖社区,原文点击这里。
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 bar = [];
)的时候。在大多数情况下,这是期望行为,因为数组是真正的对象,但当你也想对数组返回 false
时,你可以修改上面的解决方案为:
console.log((bar !== null) && (typeof bar === "object") && (toString.call(bar) !== "[object Array]"));
或者,如果你使用jQuery的话:
console.log((bar !== null) && (typeof bar === "object") && (! $.isArray(bar)));
展开全文
阅读全文
0 0
- 经验分享 | 10 个最基本的JS面试问题及答案
- 10 个最基本的JS面试问题及答案
- 25个最基本的JavaScript面试问题及答案
- 25个最基本的JavaScript面试问题及答案
- 25个最基本的JavaScript面试问题及答案
- 25个最基本的JavaScript面试问题及答案
- 25个最基本的JavaScript面试问题及答案
- 25 个最基本的 JavaScript 面试问题及答案
- 25 个最基本的 JavaScript 面试问题及答案
- 最常见的 20 个 jQuery 面试问题及答案
- 最常见的 20 个 jQuery 面试问题及答案
- 最常见的 20 个 jQuery 面试问题及答案
- 最常见的 20 个 jQuery 面试问题及答案
- 最常见的 20 个 jQuery 面试问题及答案
- 最常见的20个jQuery面试问题及答案
- 最常见的 20 个 jQuery 面试问题及答案
- 最常见的20个jQuery面试问题及答案
- 最常见的 20 个 jQuery 面试问题及答案
- stm32 system_stm32f10x.c文件
- C# 读取 TXT文件的时候中文乱码解决方法
- weblogic 访问返回401-Unauthorized
- HDU 5862 Counting Intersections(树状数组)
- "没有废物"之前世今生(续)
- 经验分享 | 10 个最基本的JS面试问题及答案
- [RK3288][Android6.0] 调试笔记 --- CPU温度降频控制
- 1144:素数回文
- React native 上传图片遇到的问题
- TCP连接的状态详解以及故障排查
- web.xml里的Servlet和Filter示例
- 第一篇
- tarjan求强连通分量
- Java语言基础小结5