javascript 数据类型判断

1. typeof

typeof返回值为字符串,有六种类型

number,string,boolean,function,undefined,object,

typeof通常用来区分undefined和function类型,无法分辨复杂类型,例如array类型,和plain object类型

用 typeof(reValue) === "undefined" 来区分undefined,不用 reValue === undefined 来区分undefined,是因为reValue未声明时,浏览器直接报错

用typeof(reValue) === "function" 来检测function

2. instanceof

instanceof用来判断对象实例与类型的关系,返回值为bool类型,不能跨iframe。

3. constructor

constructor检测是使用对象的constructor属性,其值为该对象类型的构造函数的引用。例如,num.constructor的值为function Number(){native code}。此方法可以用来判断Array类型,例如 obj.constructor === Array 来判断其类型是否为Array。

constructor方法有一些缺点,一是constructor属性可以被修改,二是constructor的判断不能穿越iframe。

4. Object.prototype.toString.call

此方法调用具体对象,会返回字符串,共11种类型,如下

‘[object Number]‘ ‘[object String]‘ ‘[object Boolean]‘ ‘[object Array]‘ ‘[object Object]‘
‘[object Function]‘ ‘[object Undefined]‘ ‘[object Null]‘ ‘[object Date]‘ ‘[object RegExp]‘ ‘[object Error]‘

此方法是用来检测类型的终极方法,jquery的type()方法就是使用此方法来判断的,具体使用类型判断时候,可以解决$.type的实现。

总结: 具体使用时,可用typeof检测undefined和function,其他类型的检测使用toSting.call或者第三方封装的type方法。

参考:http://www.2cto.com/kf/201507/414817.html

时间: 2024-12-20 01:58:40

javascript 数据类型判断的相关文章

javascript数据类型的判断

最近看到了很多关于数据类型判断的方法,总结了下 一.javascript的数据类型 js数据分为两种类型:原始数据类型和引用数据类型.原始数据类型有:string.number.boolean.undefined和null引用数据类型有:Function.Object.Date.RegExp.Number.String.Boolean和自定义类等 其中原始数据类型也称基础数据类型,是不可拆分的数据类型,他存在于栈中:而引用数据类型也是通常意义上所说的类,存在于堆中.这两者的一个重要的区别在于原始

javascript数据类型及判断

javascript数据类型: 基础数据类型 js数据分为两种类型:原始数据类型和引用数据类型. 原始数据类型有:string.number.boolean.undefined null Symbol(ES6新增) 引用数据类型有:Function.Object.Date.RegExp.Number.String.Boolean和自定义类等 基础数据类型判断 1.typeof()函数 对于原始数据类型,我们可以使用typeof()函数来判断他的数据类型: typeof(1) //number t

Javascript 中的数据类型判断

(迁移自旧博客2017 09 25) typeof 我们常使用typeof来判断数据类型,在常规场景中足以应付数据类型判断的需要: var obj = { name: 'zhangxiang' }; function foo() { console.log('this is a function'); } var arr = [1,2,3]; console.log(typeof 1); // number console.log(typeof '1'); //string console.lo

JavaScript类型判断

JavaScript的数据类型可以分为:标准类型和对象类型. 标准类型有:undefined Null Boolean Date Number Object 对象类型(构造器类型)有:Boolean Date Number Object Array Date Error Function RegExp 用来判断数据类型的一般有四种方式,分别是: 1.typeof 可以识别标准类型(Null除外) 不能识别对象类型(Function除外) 2.Prototype.toString() 可以识别标准

JavaScript 数据类型

JavaScript 语?的每?个值,都属于某?种数据类型. 在 ES5 ??,数据类型?共分为六种:五种原始数据类型,?种引?数据类型. 在原始数据类型?,分为了五个?类: number(数字)类型:包含整数和浮点数(即?数): boolean(布尔)类型:只有 true 和 false 两个值: string(字符串)类型:字符串值必须?引号括起来,引号可以是单引号,也可以是双引号: null 类型:?于表示某个变量值为空: undefined 类型:?来确定?个已经创建但是没有初始值的变量

AngularJs Angular数据类型判断

AngularJs Angular数据类型判断 angular.isArray 判断括号内的值是否为数组. 格式:angular.isArray(value); value: 被判断是否为数组的值. --------------------------------------------------------------- angular.isDate 判断括号内的值是否是一个时间. 格式:angular.isDate(value); value:被判断是否为时间的值. -----------

Javascript数据类型和类型转换

Javascript数据类型 Boolean(布尔).Number(数字).String(字符串).Undefined(未定义).Null(空对象).Object(对象类型).Function 引用类型:对象.数组.函数. 原始数据类型:数值.布尔值 .null .字符串 原始类型的变量不能动态添加成员: <script type="text/javascript"> var n='我好帅'; n.Age=100; alert(n.Age);//结果是undefined &

JavaScript筑基篇(二)-&gt;JavaScript数据类型

说明 介绍JavaScript数据类型 目录 前言 参考来源 前置技术要求 JavaScript的6种数据类型 哪6种数据类型 undefined 类型 null 类型 boolean 类型 number 类型 string 类型 复杂 类型 基本型和引用型的不同 关于数据类型的一些常见疑问 为什么typeof null === 'object' string,String,object,Object,function,Function的关系 关于String类型与string类型的疑问 fun

JavaScript数据类型和转换

JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed(3);//四舍五入保留3位小数. 3.String(字符串) var s1='hello';//字符串类型 字符串:(值类型,字符串不可变特性) 4.Undefined(未定义) undefined属于值类型,与其他值计算得到的结果不是我们想要的,但与数据库中的null稍有区