js类型检测
1、typeof 或者 typeof() 适合基本类型及function检测,遇null失效
ex: typeof 100 返回值为 "number"
typeof true 返回值为 "boolean"
typeof function(){} 返回值为 "function"
typeof undefined 返回值为 "undefince"
typeof new Object() 返回值为 "object"
typeof [1,2] 返回值为 "object"
typeof NaN 返回值为 "number"
typeof null 返回值为 "object"
2、instanceof(基于原型链判断) 适合自定义对象,也可用来检测原生对象,在不同iframe和window间检测时失效
obj instanceof Object #instanceof操作符期望左操作数是一个对象,如果不是,会返回false,期望右操作符实一个函数对象或函数构造器,若不是,会跑出一个type error异常
3、Object.prototype.toString.apply() 适合内置对象和基本类型,遇到null和undefined失效
注意:IE6/7/8 Object.prototype.toString.apply(null) 返回值为 "[object Object]"
Object.prototype.toString.apply([]) 返回值为 "[object Array]"
Object.prototype.toString.apply(function(){}) 返回值为 "[object Function]"
Object.prototype.toString.apply(null) 返回值为 "[object Null]"
Object.prototype.toString.apply(undefined) 返回值为 "[object Undefinde]"
4、constructor
5、duck type
js类型检测的更多相关文章
- JS 类型检测
typeof 适合函数对象和基本类型的判断 typeof 100instanceof 适合判断对象类型 obj instanceof Object 基于原型链判断操作符,若做操作符不是对象,则会直接返 ...
- js类型检测总结
类型检测: 类和对象: Call,Apply,Bind
- JavaScript中类型检测
文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...
- JavaScript 类型 检测
前言 ECMAScript中有5种数据类型,分别为Number,Boolean,Null,Undifined和String,以及一种复杂的数据类型Object(由名值对组成,是这门语言所有对象的基础类 ...
- JS类型判断&原型链
JS类型检测主要有四种 1.typeof Obj 2.L instanceof R 3.Object.prototype.toString.call/apply(); 4.Obj.constructo ...
- JS数组类型检测
在强类型语言,数组类型检测是非常容易的事情(typeof就可以解决),而在弱语言JS数据类型就很容易混淆了. JS中常见的数据类型有:number.string.boolean.undefined.f ...
- JS中 typeof,instanceof类型检测方式
在js中的类型检测目前我所知道的是三种方式,分别有它们的应用场景: 1.typeof:主要用于检测基本类型. typeof undefined;//=> undefined typeof 'a' ...
- JS中类型检测方式
在js中的类型检测目前我所知道的是三种方式,分别有它们的应用场景: 1.typeof:主要用于检测基本类型. typeof undefined;//=> undefined typeof 'a' ...
- JS的静态类型检测,有内味儿了
我们知道 TypeScript 2.3 以后的版本支持使用--checkJs对.js文件进行类型检查和错误提示. 但是由于 JavaScript 是弱类型语言,在编写代码的时候,是无法检测变量的类型的 ...
随机推荐
- win10本地搭建apache+php+mysql运行环境
首先下载所需软件: Vc2015:https://www.microsoft.com/zh-CN/download/details.aspx?id=48145 Vc2012:http://www.mi ...
- NSUserDefaults存取失败
解决办法: 1.存储NSUserDefaults时,强制NSUserDefault存入沙盒 [[NSUserDefaults standardUserDefaults] setObject:sAcco ...
- ARP协议学习
1.地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.所以,ARP就是把IP地址解析为MAC地址. 2.如何查看和清除 ...
- Keras学习~试用卷积~跑CIFAR-10
import numpy as np import cPickle import keras as ks from keras.layers import Dense, Activation, Fla ...
- 货运APP产品魔力=卓越功能×情感诉求
货运APP产品魔力=卓越功能×情感诉求 [导语]在滴滴打车.快的打车软件风靡全国之际,很多企业也在探索如何将其应用到公路货运领域用以整合社会运力资源.但一方面大多数人聚焦的是干线运输中的长途货车运 ...
- java综合实训第二次
- Git中pull对比fetch和merge
本文参考于:http://www.zhanglian2010.cn/2014/07/git-pull-vs-fetch-and-merge/ 使用git fetch和git pull都可以更新远程仓库 ...
- iTunes
我们的电脑都要下载比较好的显卡那项 https://support.apple.com/zh_CN/downloads/itunes
- MaxScale:实现MySQL读写分离与负载均衡的中间件利器
1. MaxScale 是干什么的? 配置好了 MySQL 的主从复制结构后,我们希望实现读写分离,把读操作分散到从服务器中,并且对多个从服务器能实现负载均衡. 读写分离和负载均衡 是MySQL集群的 ...
- 最近几天玩freebsd奋斗成果总结
玩freebsd发现真的很累人..相信如下问题第一次玩freebsd都遇到过: 安装系统默认只有文本模式,需要手工安装gnome,kde等desktop environment. Freebsd安装. ...