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. vim配置C++开发环境 win10

    资料一 —— vim插件的安装 https://www.cnblogs.com/tianzhiyi/p/5338032.html 资料二 —— vim多窗口操作: https://blog.csdn. ...

  2. selenium chrome.options禁止加载图片和js

    #新建一个选项卡 from selenium import webdriver options = webdriver.ChromeOptions() #禁止加载图片 prefs = { 'profi ...

  3. angular-API

    AngularJS 全局 API 用于执行常见任务的 JavaScript 函数集合,如: 比较对象 迭代对象 转换对象 API 描述 angular.lowercase() 转换字符串为小写 ang ...

  4. COGS——T 2342. [SCOI2007]kshort || BZOJ——T 1073

    http://www.cogs.pro/cogs/problem/problem.php?pid=2342 ★★☆   输入文件:bzoj_1073.in   输出文件:bzoj_1073.out   ...

  5. Linux下永久改动MAC地址和ifconfig命令总结

    1. 固定一个MAC地址,特别是在使用多个虚拟机的时候 linux环境下: 用root身份登录,在/etc/rc.d/rc.local里加上这三句 ifconfig eth0 down ifconfi ...

  6. Webserver管理系列:4、WinPE

    WinPE能够识别NTFS分区,使用WinPE能够备份/还原系统.能够重置用户password. 首先给大家看下怎样用WinPE重置password: 放入WinPE光盘-〉启动后-〉点開始菜单-〉程 ...

  7. Android 输入管理服务-输入事件向详细应用的分发

    输入管理服务接收到输入事件,对输入事件进行处理之后会把输入事件分发到详细的应用中(如WMS.壁纸服务等)去处理的,这里涉及到了JNI从C++层向JAVA层的调用. 详细流程例如以下图所看到的:

  8. m_Orchestrate learning system---三、session使用完整流程是什么

    m_Orchestrate learning system---三.session使用完整流程是什么 一.总结 一句话总结: 1.在登录成功之后设置session和cookie 2.在公共控制器里面使 ...

  9. Linux Yum 命令使用举例

    转自:https://blog.csdn.net/u012359618/article/details/51199309/ 本文给大家讲解Yum的使用15个范例: Yum软件包管理方式,在Red Ha ...

  10. HTML5学习笔记(二):用于构建页面的语义元素

    1.语义元素 大多数HTML5语义元素的用途是标识页面中的一个内容区块,为标注的内容赋予额外的含义,不真正做任何事. 2.使用语义元素的原因 容易修改和维护: 无障碍性(现代Web设计的一个重要主题) ...