随笔 - 0, 文章 - 75, 评论 - 0, 引用 - 0
数据加载中……

从typeof()用法深入分析对象类型

<script
type="text/javascript">
document.write("typeof()的用法<br>");
document.write(typeof("")
+ "<br>"); //string
document.write(typeof("hi") +
"<br>");//string
document.write(typeof(200) + "<br>");
//number
document.write(typeof(0) + "<br>");
//number
document.write(typeof(false) + "<br>");
//boolean
document.write(typeof(true) + "<br>");
//boolean
document.write(typeof(new Object()) + "<br>");
//object
document.write(typeof(new Array())+"<br>");
//object
document.write(typeof(new Date())+"<br>");
//object
document.write(typeof(new RegExp())+"<br>");
//object
document.write(typeof(null) + "<br>");
//object
document.write(typeof(new Function())+"<br>");
//function
document.write(typeof(undefined) + "<br>");
//undefined
</script>


结果如下:

typeof()的用法
string
string
number
number
boolean
boolean
object
object
object
object
object
function
undefined

由代码结果分析得:
typeof(null),typeof(Object),typeof(Array),typeof(Date),typeof(RegExp)结果都是object;
typeof()方法只能分辨出number、string、function、boolean数据类型。
那么如何能清楚分辨出其他Array、Date..类型呢?

这里有一个有用的技巧就是运用Object.toString()方法来测试对象类型,其默认的返回形式如下的字符串:[object
class],这里的class可以是用户定义的任何对象,如Window,Object,Array等。我们只需要查看class的值就能辨别出对象的类型。

好,看实验吧!
这里我创建了一个checkType函数,用来检测对象类型。
<script language="javascript">
var num =
1221;
var str = "abc123";
var obj =
{x:2,y:3};
var arr = [3,"df",{}];

var date = new Date();
var func =
function(){};
var error = new
Error();
var exp = new RegExp();
var
n = null;
var un;



document.writeln(checkType(num));

document.writeln(checkType(str));

document.writeln(checkType(obj));

document.writeln(checkType(arr));

document.writeln(checkType(date));

document.writeln(checkType(func));

document.writeln(checkType(error));

document.writeln(checkType(func));

document.writeln(checkType(exp));

document.writeln(checkType(n));

document.writeln(checkType(un));


function checkType(x){
  var typeAll =
Object.prototype.toString.apply(x);
 
return
typeAll.substring(8,typeAll.length-1);

}
</script>

结果:
Number String Object Array Date Function
Error Function RegExp Window Window

posted on 2012-04-22 15:11 hantai 阅读(3219) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: