码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中类型检测

时间:2015-05-02 13:57:23      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:javascript

JavaScript是类型松散的,也就是说,在使用变量和函数参数之前,不会对它们进行比较已确保它们的数据类型正确。
JS有五种基本数据类型:Undefined、Null、Boolean、Number和String,还有一种复杂数据类型Object。
JS是不支持任何创建自定义类型的机制,所有值最终都将是上述6种数据类型之一。

对于上述6种类型的变量,可以利用typeof操作符来检测。
typeof操作符可能返回下列六个字符串:
"undefined"——这个值未定义,对应Undefined类型的变量
"undefined"——这个值是布尔值,对应Boolean类型的变量
"string"——这个值是字符串,对应String类型的变量
"number"——这个值是数值,对应Number类型的变量
"object"——这个值是对象或null,对应Object类型和Null的变量
"function"——这个值是函数。

在检测5种基本类型时,typeof操作符很有用,但是在检测引用类型的值时,这个操作符就用处不大了。因为任何引用类型用typeof检测都返回"object",但其实我们想知道的是它到底是什么类型的对象。
因此,我们检测引用类型时要用instanceof操作符。
JS中的引用类型分为:Object类型、Array类型、Date类型、RegExp类型、Function类型、基本包装类型(Boolean、Number、String)、单体内置类型(Global对象、Math对象)
instanceof操作符返回true或false,其语法如下:
result = variable instanceof constructor。

instanceof操作符在编写类型检测代码时十分有用,例如:
function reverseSort(values){
    //只有values参数是Array类型时,才能调用其sort(),reverse()方法,如果不检测的话,传入一个非数组对象就报错了
    if(values instanceof Array){
    values.sort();
    values.reverse();
    }
}

总结:大体来说,5种基本类型的值应该使用typeof来检测,而对象(引用类型)的值则应该使用instanceof来检测。

JavaScript中类型检测

标签:javascript

原文地址:http://blog.csdn.net/zhuyunhe/article/details/45438913

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!