先准备几个变量

var a = "abcde.";

var b = 222;

var c= [1,2,3]; // 或者 new Array()

var d = new Date();

var e = function(){alert(111);};

var f = function(){this.name="rrrr";};

var g ={ 'name':'rrrr'}

1. 通用型 Object.prototype.toString.call(obj)  , 注意大小写

console.log(Object.prototype.toString.call(a) === ‘[object  String]’) //true;

console.log(Object.prototype.toString.call(b) === ‘[object  Number]’) //true;

console.log(Object.prototype.toString.call(c) === ‘[object  Array]’) //true;

console.log(Object.prototype.toString.call(d) === ‘[object  Date]’) //true;

console.log(Object.prototype.toString.call(e) === ‘[object  Function]’) //true;

console.log(Object.prototype.toString.call(f) === ‘[object   Function]’) //true;

console.log(Object.prototype.toString.call(g) === ‘[object  Object]’) //true;

2.typeof 方式 ,返回都是小写形式的数据类型名称字符串

console.log(typeof a)   //string

console.log(typeof b)   //number

console.log(typeof c)   //object

console.log(typeof d)   //object

console.log(typeof e)   //function

console.log(typeof f)   //function

console.log(typeof g)   //object

判断:alert(typeof a == "string")    ////true

3. instanceof , 判断已知对象类型,标准的js数据类型名称,注意大小写

console.log( a instanceof  String)     //true

console.log( d instanceof  Date)  // true

console.log( c instanceof  Array)  // true

console.log( g instanceof  Object)  //true

4. obj.constructor 对象的属性判断  用 === 符号,(与内置数据类型比较时为标准的js数据类型名称,注意大小写。也可与自定义数据类型比较,但是在继承时会有些问题)

function A(){};
    function B(){};
    A.prototype = new B(); //A继承自B

var obj0 = new A();
    console.log(obj0.constructor === A);   // false
    console.log(obj0.constructor === B);   // true

//这里用instanceof 则会都给出 true值

console.log(obj0 instanceof A)  //true;

console.log(obj0 instanceof B)  //true;

//解决construtor的问题通常是让对象的constructor手动指向自己:

obj0.constructor = A; //将自己的类赋值给对象的constructor属性

console.log(obj0.constructor === A) //true;

console.log(obj0.constructor === B) //false; //基类不会报true了;

JavaScript 类型判断的那些事的更多相关文章

  1. JavaScript 类型判断 —— typeof 以及 instanceof 中的陷阱

    JavaScript中基本类型包含Undefined.Null.Boolean.Number.String以及Object引用类型.基本类型可以通过typeof来进行检测,对象类型可以通过instan ...

  2. JavaScript类型判断详解(Object.prototype.toString.call()方法进行数据类型的可靠判断)

    前言 在编写一些类库中,我们经常需要判断一些未知的用户的输入和配置,故而需要进行一系列的类型判断.故而总结下JS是如何进行类型判断的 typeof typeof操作符返回一个字符串,表示未经计算的操作 ...

  3. JavaScript类型判断instanceof与typeof对比

    经常有人会在JavaScript里写如下的方法: function checkType() { var s1 = 123; var s2 = "OK"; if (s1 instan ...

  4. JavaScript类型判断

    几种方法:typeof,instanceof,Object.prototype.toString,constructor,duck type ES6引入了一种新的原始数据类型Symbol,表示独一无二 ...

  5. javaScript 类型判断

    直接上例子: 1 判断是否为数组类型 2 判断是否为字符串类型 3 判断是否为数值类型 4 判断是否为日期类型 5 判断是否为函数 6 判断是否为对象 1 判断是否为数组类型 linenum < ...

  6. javascript类型判断方法

    判断javascript中的类型,共有四种常用的方法 var a=6; var b="str"; var c=true; var arr=[]; typeof 用于基本类型的判断 ...

  7. javascript类型判断最佳实践

    javascript有8种数据类型 值类型 Number Null Undefined String Symbol Boolean BigInt 引用类型 Object Array Function ...

  8. Javascript类型检测

    原地址 http://www.cnblogs.com/fool/archive/2010/10/07/javascrpt.html 开门见山,我们先来看一下代码: var is = function ...

  9. JavaScript数据类型判断的四种方法

    码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14416375.html 本文分享了JavaScript类型判断的四种方法:typeo ...

随机推荐

  1. 简单的FIRST集演示程序

    /* * 该程序用于计算某个非终结符的 FIRST 集合 * RexfieldVon * 2013年6月29日19:53:45 * 2013年7月3日22:01:57 修改 GetFIRST 例程以简 ...

  2. dubbo简述

    转http://blog.csdn.net/hzzhoushaoyu/article/details/4327309 一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一 ...

  3. Android ImageView 图片设置为透明

    方法一: 在xml中,设置如下 <ImageView            android:id="@+id/xx_id"            android:layout ...

  4. 【剑指Offer学习】【面试题43 : n 个锻子的点数】

    题目:把n个骰子扔在地上,全部骰子朝上一面的点数之和为s.输入n.打印出s 的全部可能的值出现的概率. 解题思路 解法一:基于通归求解,时间效率不够高. 先把n个骰子分为两堆:第一堆仅仅有一个.还有一 ...

  5. NSIndexPath初始化

    在UITableView中经常用到这个类,但一直不知道怎么初始化,网上抄录的代码如下,果然好用 NSIndexPath *index = [NSIndexPath indexPathForRow:0 ...

  6. C#解leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal

    Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that ...

  7. OD: Kernel Exploit - 1

    第 22 章,内核漏洞利用技术 首先编写具有漏洞的驱动 exploitme.sys,再展开内核漏洞利用思路和方法: /***************************************** ...

  8. 转:android 自定义RadioButton样式

    http://gundumw100.iteye.com/blog/1146527  上面这种3选1的效果如何做呢?用代码写? 其实有更简单的办法,忘了RadioButton有什么特性了吗? 我就用Ra ...

  9. 基于CANVAS与MD5的客户端生成验证码

    好久没写东西,工作太忙了!不想服务端请求太多,搞了个这玩意儿,不过项目中并不会用上,还是使用服务端生成的机制(会安全多少呢?):我就想问个问题,除了图像识别来破解这样的简单验证码外,针对我这种例子,可 ...

  10. "javascript:void(0)"用法

    1.window.open(''url'') 2.用自定义函数 <script> function openWin(tag,obj) { obj.target="_blank&q ...