您的位置:首页 > Web前端 > JavaScript

js判断变量数据类型

2017-10-31 21:11 274 查看
js判断变量数据类型的方法主要有以下几种:

变量:

var a= 'abc',
b= '123',
c= undefined,
d= 123,
e= Number('qwe'),
f= function(){},
g= [];

1、typeof方法:

用法: typeof a;

缺点:typeof g; // 'object'

2、instanceof:

用法: a instanceof 'string'; // true

g instanceof Array; // true

缺点:比如在iframe框架中,如果在子iframe中定义了一个数组,再将这个数组传递给父iframe中的一个变量,这是再次用instanceof判断数据类型时,就无效了。array属于引用型数据,在传递过程中,仅仅是引用地址的传递。每个页面的Array原生对象所引用的地址是不一样的,在子页面声明的array,所对应的构造函数,是子页面的Array对象;父页面来进行判断,使用的Array并不等于子页面的Array;

3、Object.prototype.toString.call() 或者 Object.prototype.toString.apply()方法;

两种用法相同:

Object.prototype.toString.call(a);     //"[object String]"
Object.prototype.toString.call(b);     //"[object String]"
Object.prototype.toString.call(c);     //"[object Undefined]"
Object.prototype.toString.call(d);     //"[object Number]"
Object.prototype.toString.call(e);     //"[object Number]"
Object.prototype.toString.call(f);     //"[object Function]"
Object.prototype.toString.call(g);     //"[object Array]"

这也是最完美的一种方式,但是需要注意的是,对于NaN来说,它属于Number类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息