ES5中,js中数据类型:number、string、boolean、undefined、null、object

js中获取数据类型常用的四种方式

实例:

var a = 123,
b = true,
c = "123",
d = undefined,
e = null;
var o = new Object();
var f = new Function();
var f1 = function(){};
function f2(){}
var arr = [];
var arr1 = new Array();
var reg = new RegExp();  

1. typeof

可以判断 js 中基本数据类型,但无法判断对象的具体类型

console.log("a:"+typeof(a));
console.log("b:"+typeof(b));
console.log("c:"+typeof(c));
console.log("d:"+typeof(d));
console.log("e:"+typeof(e));
console.log("o:"+typeof(o));
console.log("f:"+typeof(f));
console.log("f1:"+typeof(f1));
console.log("f2:"+typeof(f2));
console.log("arr:"+typeof(arr));
console.log("arr1:"+typeof(arr1));
console.log("reg:"+typeof(reg));  

注意:当使用基本包装类型创建字符串,数组或布尔值时,使用typeof返回的是Object

判断基本类型

function ccTypeof(cc){
return cc === null ? "null" : typrof(cc);
}  

2. Object.prototype.toString.call(1)

可以判断具体的对象类型,包括正则等,但是无法判断自定义对象类型。

console.log("a:"+ Object.prototype.toString.call(a));
console.log("b:"+ Object.prototype.toString.call(b));
console.log("c:"+ Object.prototype.toString.call(c));
console.log("d:"+ Object.prototype.toString.call(d));
console.log("e:"+ Object.prototype.toString.call(e));
console.log("o:"+ Object.prototype.toString.call(o));
console.log("f:"+ Object.prototype.toString.call(f));
console.log("f1:"+ Object.prototype.toString.call(f1));
console.log("f2:"+ Object.prototype.toString.call(f2));
console.log("arr:"+ Object.prototype.toString.call(arr));
console.log("arr1:"+ Object.prototype.toString.call(arr1));
console.log("reg:"+ Object.prototype.toString.call(reg)); 

function A(){
this.a = 1;
}
var x = new A();
console.log(Object.prototype.toString.call(x));

3. instanceof

用法:变量 nstaceof 对象,返回值为boolean。

仅能判断对象的具体类型,但可以拥于判断自定义对象类型。

var a = 123,
b = true,
c = "123";
//d = undefined,
//e = null;
var o = new Object();
var f = new Function();
var f1 = function(){};
function f2(){}
var arr = [];
var arr1 = new Array();
var reg = new RegExp(); console.log(a instanceof Number);
console.log(b instanceof Boolean);
console.log(c instanceof String);
//console.log("d:"+d instanceof Undefined);
//console.log("e:"+e instanceof Null);
console.log(o instanceof Object);
console.log(f instanceof Function);
console.log(f1 instanceof Function);
console.log(f2 instanceof Function);
console.log(arr instanceof Array);
console.log(arr1 instanceof Array);
console.log(reg instanceof RegExp);  

function A(){
this.a = 1;
}
function B(){
this.b = 2;
}
var x = new A();
if(x instanceof A){
console.log("x is A");
}
if(x instanceof B){
console.log("x is B");
}else{
console.log("x is not B");
}

4. constructor

查看对象对应的构造函数

object的每个实例都具有属性constructor,保存着用于创建当前对象的函数。

function A(){
this.a = 1;
} var x = new A();
console.log(x.constructor);

function A(){
this.a = 1;
}
function B(){
this.b = 2;
}
var x = new A();
if(x.constructor == A){
console.log("x is A");
}
if(x.constructor == B){
console.log("x is B");
}else{
console.log("x is not B");
}

但是Undefined和Null类型不能判断

打印所有类型

function ccTypeof(cc){
var typeName == Object.prototype.toString.call(cc);
if( typeName == "[object Object]"){
typeName = "[object" + cc.constructor.name + "]";
}
}

注意:判断数组还可以用数组的isArray()方法,语法:Array.isArray(arr),返回值为Boolean值。

js中获取数据类型的更多相关文章

  1. 浅谈js中的数据类型,使用typeof获取js数据类型

    JS中的数据类型 1):Undefined——值未定义 注:Undefined类型只有一个值,即特色的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined ...

  2. js中的数据类型及其转换

    Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...

  3. JS中判断数据类型的几种方法

    1⃣️首先我们来了解一下js中的数据类型 1.基本数据类型:Undefined.Null.Boolean.Number.String(值类型) 2.复杂数据类型:Object(引用类型) (值类型和引 ...

  4. js中的数据类型以及转换

    Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...

  5. js中的数据类型

    JS中的数据类型: ——数字  (number)NaN ——字符串(string) ——布尔  (boolean)——函数  (function)     也是对象的一种 ——对象  (object) ...

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

    js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: ...

  7. 如何判断js中的数据类型

    如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...

  8. js中获取URL中指定的查询字符串

    js中获取URL中指定的搜索字符串,主要利用location对象实现,废话少说,上代码. function getSearchString(key) { // 获取URL中?之后的字符 var str ...

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

    原文地址:http://blog.sina.com.cn/s/blog_51048da70101grz6.html 如何判断js中的数据类型:typeof.instanceof. constructo ...

随机推荐

  1. 搭建svn服务器(ubuntu)

    ubuntu搭建svn服务器 环境:ubuntu 12.04.5 apt-get install subversion 找个目录作为svn的仓库 mkdir svn svnadmin create s ...

  2. node——将用户提交的数据写入data.json文件

    前续 当我们在进行将数据提交到某个网页时,需要将提交数据保存下来 1.提交数据 2.获得数据 3.保存数据 先看提交数据: <!DOCTYPE html> <html lang=&q ...

  3. JavaScript高级程序设计部分笔记

    1.JavaScript由三个不同的部分组成:ECMAScript(核心).DOM(文档对象模型).BOM(浏览器对象模型). 2.数据的引用类型 Object类型 Array类型 Data类型 Re ...

  4. LeetCode 856 递归思路详解

    题目描述 给定一个平衡括号字符串 S,按下述规则计算该字符串的分数: () 得 1 分. AB 得 A + B 分,其中 A 和 B 是平衡括号字符串. (A) 得 2 * A 分,其中 A 是平衡括 ...

  5. 2.WHERE中使用=,>,>=,<,<=,<>,!=比较符号

        //查询工资大于等于2000的人   select * from person salary >= 2000;   //查询名字等于scott的人   select * from per ...

  6. java判断string数组中是否包含某个元素

  7. Qt之设置应用程序图标

    简述 应用程序图标,通常显示在应用程序的顶层窗口的左上角,通过调用QWindow:setWindowIcon()函数来实现. 为了改变可执行程序文件本身的图标,因为它被呈现在桌面上,它必须采用另一种依 ...

  8. HDU 4320 Contest 3

    只需A的全部质因数包含在B中即可. #include <iostream> #include <cstdio> #define LL __int64 #include < ...

  9. Shuttle ESB实现消息推送

    ESB全称Enterprise Service Bus,即企业服务总线.它是传统中间件技术与XML.Web服务等技术结合的产物. ESB的出现改变了传统的软件架构,能够提供比传统中间件产品更为便宜的解 ...

  10. pip安装selenium时提示Unknown or unsupported command 'install'

    安装流程: 1.安装Python34 2.安装pip 下载setuptoos并安装,然后输入:easy_install pip 然后 配置path:C:\Python34\Scripts 3安装sel ...