JavaScript 类型判断的那些事
先准备几个变量
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继承自Bvar 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 类型判断的那些事的更多相关文章
- JavaScript 类型判断 —— typeof 以及 instanceof 中的陷阱
JavaScript中基本类型包含Undefined.Null.Boolean.Number.String以及Object引用类型.基本类型可以通过typeof来进行检测,对象类型可以通过instan ...
- JavaScript类型判断详解(Object.prototype.toString.call()方法进行数据类型的可靠判断)
前言 在编写一些类库中,我们经常需要判断一些未知的用户的输入和配置,故而需要进行一系列的类型判断.故而总结下JS是如何进行类型判断的 typeof typeof操作符返回一个字符串,表示未经计算的操作 ...
- JavaScript类型判断instanceof与typeof对比
经常有人会在JavaScript里写如下的方法: function checkType() { var s1 = 123; var s2 = "OK"; if (s1 instan ...
- JavaScript类型判断
几种方法:typeof,instanceof,Object.prototype.toString,constructor,duck type ES6引入了一种新的原始数据类型Symbol,表示独一无二 ...
- javaScript 类型判断
直接上例子: 1 判断是否为数组类型 2 判断是否为字符串类型 3 判断是否为数值类型 4 判断是否为日期类型 5 判断是否为函数 6 判断是否为对象 1 判断是否为数组类型 linenum < ...
- javascript类型判断方法
判断javascript中的类型,共有四种常用的方法 var a=6; var b="str"; var c=true; var arr=[]; typeof 用于基本类型的判断 ...
- javascript类型判断最佳实践
javascript有8种数据类型 值类型 Number Null Undefined String Symbol Boolean BigInt 引用类型 Object Array Function ...
- Javascript类型检测
原地址 http://www.cnblogs.com/fool/archive/2010/10/07/javascrpt.html 开门见山,我们先来看一下代码: var is = function ...
- JavaScript数据类型判断的四种方法
码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14416375.html 本文分享了JavaScript类型判断的四种方法:typeo ...
随机推荐
- 简单的FIRST集演示程序
/* * 该程序用于计算某个非终结符的 FIRST 集合 * RexfieldVon * 2013年6月29日19:53:45 * 2013年7月3日22:01:57 修改 GetFIRST 例程以简 ...
- dubbo简述
转http://blog.csdn.net/hzzhoushaoyu/article/details/4327309 一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一 ...
- Android ImageView 图片设置为透明
方法一: 在xml中,设置如下 <ImageView android:id="@+id/xx_id" android:layout ...
- 【剑指Offer学习】【面试题43 : n 个锻子的点数】
题目:把n个骰子扔在地上,全部骰子朝上一面的点数之和为s.输入n.打印出s 的全部可能的值出现的概率. 解题思路 解法一:基于通归求解,时间效率不够高. 先把n个骰子分为两堆:第一堆仅仅有一个.还有一 ...
- NSIndexPath初始化
在UITableView中经常用到这个类,但一直不知道怎么初始化,网上抄录的代码如下,果然好用 NSIndexPath *index = [NSIndexPath indexPathForRow:0 ...
- 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 ...
- OD: Kernel Exploit - 1
第 22 章,内核漏洞利用技术 首先编写具有漏洞的驱动 exploitme.sys,再展开内核漏洞利用思路和方法: /***************************************** ...
- 转:android 自定义RadioButton样式
http://gundumw100.iteye.com/blog/1146527 上面这种3选1的效果如何做呢?用代码写? 其实有更简单的办法,忘了RadioButton有什么特性了吗? 我就用Ra ...
- 基于CANVAS与MD5的客户端生成验证码
好久没写东西,工作太忙了!不想服务端请求太多,搞了个这玩意儿,不过项目中并不会用上,还是使用服务端生成的机制(会安全多少呢?):我就想问个问题,除了图像识别来破解这样的简单验证码外,针对我这种例子,可 ...
- "javascript:void(0)"用法
1.window.open(''url'') 2.用自定义函数 <script> function openWin(tag,obj) { obj.target="_blank&q ...