JS中的数据类型检测

JavaScript的数据类型分为两类:原始类型(primitive type)和对象类型(object type)。原始类型有5种,分别是:数字(Number)、字符串(String)、布尔值(Boolean)、null和undefined。引用类 型包括:Object、Array、Date、Error、RegExp、Functions。

1.原始类型的检测

对于原始类型中的:数字、字符串、布尔值、undefined,最佳检测方法是使用typeof运算符,typeof检测后会返回一个表示值类型的字符串。typeof的语法是:

typeof <变量>
typeof(<变量>)

对以上4种原始值使用typeof运算符后:数字返回"number" 、    字符串返回"string" 、    布尔值返回"boolean" 、    undefined返回"undefined"。如下:

var str = ‘a string‘;
console.log(typeof str);           //      ->   string

var num = 0;
console.log(typeof num);           //      ->   string

var bool = true;
console.log(typeof bool);          //      ->   boolean

var undefin;
console.log(typeof undefin);               //      ->   undefined  未定义的变量和未初始化的变量都将返回undefined

原始值null,应当使用===和!==进行行比较,对null做typeof检测时,返回值为"object"。

2.引用类型的检测

引用值也称做对象(object),在JavaScript中除原始类型外都是引用类型。typeof运算符不能有效检测引用类型,所有引用类型都会返回“object”:

console.log(typeof []);              //      ->   object
console.log(typeof new Date());           //      ->   object
console.log(typeof {});                //      ->   object
console.log(typeof new Error());    //    ->   object
console.log(typeof new RegExp());    //   ->   object
console.log(typeof Function);    //    ->   function

引用类型检测推荐使用instanceof运算符,基本语法是:

value instanceof constructor

对引用类型做instanceof操作:

console.log([] instanceof Array);                //      ->   true
console.log(new Date() instanceof Date);        //       ->   true
console.log({} instanceof Object);            //      ->   true
console.log(new Error() instanceof Error);       //      ->   true
var reg = new RegExp();
console.log(reg instanceof RegExp);             //   ->   true
function func (argument) {
}
console.log(func instanceof Function)           //     ->   true

对于函数做typeof操作返回function,相比intanceof更推荐使用typeof。

对象属性检测

判断属性是否存在最好的方法是使用in运算符,如果属性存在或继承自原型链,都会返回true。如果只想检测对象实例是否存在某属性,而不是从原型继承的属性则使用hasOwnProperty()方法。如下:

function Person() {
    this.name = ‘liuht‘;
    this.doSometing = function() {
        return ‘doSometing‘;
    }
}
Person.prototype.area = ‘China‘;              // 原型链属性

var man = new Person();
man.sex = ‘man‘;

console.log(‘name‘ in man);           //         -> true
console.log(‘sex‘ in man);            //      -> true
console.log(‘area‘ in man);           //      -> true

console.log(man.hasOwnProperty(‘name‘));                //      -> true
console.log(man.hasOwnProperty(‘sex‘));                 //      -> true
console.log(man.hasOwnProperty(‘area‘));                        //      -> false
时间: 2024-10-14 06:35:47

JS中的数据类型检测的相关文章

JS中的类型检测

JS中用于类型检测的函数有typeof.instanceof .Object.prototype.toString.constrcutor.duck type typeof用于检测基本类型和函数 有些特殊情况 null.数组.Date数据类型用typeof判断返回的是object instanceof用来判断对象类型,基于原型链,可以用来判断数组和Date数据类型

js中的数据类型

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title></title>    </head>    <body>        <script>            /*             * js中的数据类型             *     一.基本(简单)数据类型  

如何判断js中的数据类型?

js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: 什么整数啊浮点数啊都叫数字,你懂的~ Boolean:  就是true和false啦 undefined: 未定义,就是你创建一个变量后却没给它赋值~ null:  故名思久,null就是没有,什么也不表示 object: 这个我也很难解释的说.就是除了上面五种之外的类型 如何判断js中的数据类型:type

如何判断js中的数据类型

如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstring."; var b = 222; var c= [1,2,3]; var d = new Date(); var e = function(){alert(111);}; var f = function(){this.name="22";}; 最常见的判断方法:typeof

js中的数据类型及其转换

Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型,也可以是浮点数.如 var a=12,b=12.5; 二,string 字符串由零个或多个字符构成,字符包括字母,数字,标点符号和空格;需要注意的是 字符串必须放在引号里(单引号或双引号); 如 var bob=”man”; alert(“bob”); alert(bob); 浏览器首先会弹出包含有

JS中的数据类型和转换

一.JS中的数据类型 js中的数据类型可以分为五种:number .string .boolean. underfine .null. number:数字类型 ,整型浮点型都包括. string:字符串类型,右数字字母字符串以及标点符号组成,必须放在单引号或者双引号中. boolean:布尔类型,只有true和false两种值. underfine:未定义,一般指的是已经声明,但是没有赋值的变量,如var a; null:空对象类型,var a = null,和var a=""有区别;

[转]如何判断js中的数据类型

原文地址:http://blog.sina.com.cn/s/blog_51048da70101grz6.html 如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstring."; var b = 222; var c= [1,2,3]; var d = new Date(); var e = function(){alert(111);}; var

判断js中的数据类型

如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstring."; var b = 222; var c= [1,2,3]; var d = new Date(); var e = function(){alert(111);}; var f = function(){this.name="22";}; 最常见的判断方法:typeof

判断js中的数据类型的几种方法

判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异同. 先举几个例子: 1 var a = "iamstring."; 2 var b = 222; 3 var c= [1,2,3]; 4 var d = new Date(); 5 var e = function(){alert(111);}; 6 var f = function()