js判断数据类型的⼏种⽅法
1. typeof
鉴于 ECMAScript 是松散类型的,因此需要有种⼿段来检测给定变量的数据类型,typeof 就是负责提供这⽅⾯信息的操作符。对⼀个值使⽤ typeof 操作符可能返回下列某个字符串:( 缺点:对于数组和对象或null 都会返回object)
"undefined" ——如果这个值未定义;
"boolean" ——如果这个值是布尔值;
"string" ——如果这个值是字符串;
"number" ——如果这个值是数值;
"object" ——如果这个值是对象或 null;
"function" ——如果这个值是函数。
例如:
var message = "some string";
alert(typeof message); //"string"
alert(typeof(message)); //"string"
alert(typeof 95); //"number"
var y=true;
alert(typeof y); //"boolean"
var a = function() { };
alert(typeof a); //"function"
var b = [1,2,3];
alert(typeof b); //"object"
var c = { };
alert(typeof c); //"object"
var d = null;
alert(typeof d); //"object"
2. 类型判断
类型判断,⼀般就是判断是否是数组,是否是空对象。
(1)判断是否是数组
定义⼀个数组:var a = [1,2,3,4,5];
⽅法⼀:
toString.call(a); // "[object Array]"
⽅法⼆:
a instanceof Array; //true
⽅法三:
a.constructor == Array; //true
js的基本数据类型 第⼀种⽅法⽐较通⽤,也就是String.call(a)的简写。
instanceof和constructor判断的变量,必须在当前页⾯声明的,⽐如,⼀个页⾯(⽗页⾯)有⼀个框架,框架中引⽤了⼀个页⾯(⼦页⾯),在⼦页⾯中声明了⼀个a,并将其赋值给⽗页⾯的⼀个变量,这时判断该变量,Array == structor会返回false;
(2)判断是否是空对象
定义⼀个变量:var obj = {};
⽅法⼀:
JSON.stringify(obj); // "{}"通过转换成JSON对象来判断是否是空⼤括号
⽅法⼆:
if(obj.id){ //如果属性id存在....}这个⽅法⽐较⼟,⼤多数⼈都能想到,前提是得知道对象中有某个属性。
⽅法三:
function isEmptyObject(e) {
var t; for (t in e) return !1; return !0 } //true isEmptyObject(obj);
//false isEmptyObject({ "a":1, "b":2});
这个⽅法是jQuery的isEmptyObject()⽅法的实现⽅式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论