javascript数据类型检测方法
2014-04-21 22:03
579 查看
一、字符串、数字、布尔值、undefined的最佳选择市使用 typeof 运算符进行检测:
对于字符串,typeof 返回"string"对于数字,typeof 返回"number"
对于布尔值,typeof 返回"boolean"
对于undefined,typeof 返回"undefined"
用法:typoef variable 或 typeof(variable)
二、null 判断
由于 typeof null 返回的值为 "object"(这是一个被诟病的语言本身设计存在的BUG),我们不能使用 typeof 来对 一个变量值是否为 null 进行判断。此外我们一般不建议将变量与 null 进行比较。不好的写法:
if( item !== null ) { // 执行一些逻辑...... }
除非在你能预见该变量有可能等于 null 的情况下,你才可以使用恒等运算符(===)和非恒等运算符(!==)进行比较:
var ele = document,getElementById("box"); if( ele === null ) { // 执行一些逻辑...... }
三、数组、对象与函数的检测
1. 数组,由于数组属于引用类型,并且使用 typeof 对其进行检测返回的值为"object",在无法使用 typeof 判断的情况下,最佳的解决方案如下:function isArray( value ) { if( typeof Array.isArray === "function" ) { return Array.isArray(value); } else { return Object.prototype.toString.call(value) === "[object Array]"; } }
2. 函数,虽然函数也属于引用类型,但因为 typeof 对函数检测的返回值为"function",因此检测函数的最好方案是使用 typeof :
function func() {} typeof func === "function" // true
陷阱:在 IE8 及 IE8 以下中使用 typeof 对DOM 节点中的方法检测会返回"object",因此在该场景下的替换方案为:
// IE8及IE8以下 console.log( typeof document.getElementById ); // "object" // 替换方案 if( "getElementById" in document ) { //执行逻辑...... }
3. 自定义对象和内置对象,由于 typeof 对所有引用类型数据都返回"object"(函数除外),因此我们一般使用 instanceof 来判断其属于哪种引用类型:
(跨frame使用会出现问题,因为每个文档都有各自的内置对象Object、Date、Function等)
var obj = {} console.log( obj instanceof Object ); // true function Person (name) { this.name = name } var person = new Person("Jack"); console.log( person instanceof Person ); // true var time = new Date(); console.log( time instanceof Date ); // true
相关文章推荐
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript 中检测数据类型的方法
- javascript检测数据类型的5种方法
- javascript基本数据类型及类型检测常用方法小结
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- javascript检测数据类型的5种方法
- JS-安全检测JavaScript基本数据类型和内置对象的方法
- javascript中的基本数据类型以及类型检测的几种方法
- javascript检测数据类型的5种方法
- javascript基础--数据类型,及检测数据类型方法