这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这篇文章主要介绍了 JavaScript 中使用 typeof 运算符需要注意的几个坑, 本文总结了 4 个使用 typeof 运算符要注意的问题, 需要的朋友可以参考下
typeof 是一个运算符,它对操作数返回的结果是一个字符串,有 6 种 (只针对 ES,不包含 HOST 环境对象)。
1.'undefined' 2.'boolean' 3.'string' 4.'number' 5.'object' 6.'function'
因为它本身是运算符,它不是函数,使用时没必要加个小括号。
- if (typeof(obj) === 'undefined') {
- // ...
- }
typeof 用来判断类型,它有几个坑
1. 对 null 返回是'object',你却不能真正当对象使用。
- var obj = null
- if (typeof obj === 'object') {
- obj.a() // 这里报错
- }
2. 对 NaN 返回是'number',你却不能使用它进行算术运算。
- var obj = {}
- var num = parseInt(obj.a)
- if (typeof num === 'number') {
- num = num + 10 // 执行后num仍然是NaN
- }
3. 不能区分对象、数组、正则,对它们操作都返回'object'。
- var obj = {}
- var arr = []
- var reg = /pop/g
- console.log(typeof obj) // 'object'
- console.log(typeof arr) // 'object'
- console.log(typeof reg) // 'object'
4. Safar5,Chrome7 之前的版本对正则对象返回'function'。
最后贴上规范里的解释
来源: http://www.phperz.com/article/17/0425/274389.html