JavaScript中使用typeof运算符需要注意的几个坑
作者:bea
typeof是一个运算符,它对操作数返回的结果是一个字符串,有6种(只针对ES,不包含HOST环境对象)。 1.'undefined' 2.'boolean' 3.'string' 4.'number' 5.'object' 6.'function' 因为它本身是运算符,它不是函数,使用时没必要加个小括号。 代码如下: if (typeof(obj) === 'undefined') { // ... } typeof用来判断类型,它有几个坑 1. 对null
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'。
最后贴上规范里的解释
有用 | 无用
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'。
最后贴上规范里的解释
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 使用script的src实现跨域和类似ajax效果
- jquery插件推荐 jquery.cookie
- jquery插件推荐浏览器嗅探userAgent
- Nodejs全栈框架StrongLoop推荐
- Javascript限制网页只能在微信内置浏览器中访问
- js闭包的用途详解
- js闭包实例汇总
- 浅谈JS闭包中的循环绑定处理程序
- jQuery函数map()和each()介绍及异同点分析
- js跨域问题浅析及解决方法优缺点对比
- js 操作符汇总
- 初始Nodejs
- jquery的总体架构分析及实现示例详解
- jquery常用方法及使用示例汇总
- JQuery遍历json数组的3种方法
- JQuery中使用.each()遍历元素学习笔记
- jQuery遍历之next()、nextAll()方法使用实例
- jQuery遍历对象、数组、集合实例
- JavaScript中具名函数的多种调用方式总结