JavaScript类型判断
几种方法:typeof,instanceof,Object.prototype.toString,constructor,duck type
ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
JavaScript5种基本类型:undefined,Number,String,null,boolean
js是一种宽松类型语言;
特殊的数值:Infinity、NaN(与自己都不相等)、Number.MAX_VALUE、Number.POSITIVE_INFINITY、
typeof返回值:
function,object,boolean,string,number,undefined;
对null使用typeof返回的是"object"
| 数据类型 | 转化成true的值 | 转化成false的值 | 
| Boolean | ture | false | 
| String | 所有的非空字符串 | ""(空字符串) | 
| Number | 任何非零数字(包括无穷大) | 0和NaN | 
| Object | 任何对象 | 不存在 | 
| Undefined | 不存在 | undefined | 
确定对象类型:typeof 不是object就是类型,否则tostring()方法返回值,但这样还是不能判断自定义类;
1)typeof:
function isUndefined(value){return typeof value == 'undefined';}
function isDefined(value){return typeof value != 'undefined';}
function isObject(value){return value != null && typeof
value == 'object';}
function isString(value){return typeof value == 'string';}
function isNumber(value){return typeof value == 'number';}
function isFunction(value){return typeof value == 'function';}
function isBoolean(value) {
return typeof value ==
'boolean';
}
2)toString:
function isDate(value){
return
toString.apply(value) == '[object Date]';
}
function isArray(value) {
return toString.apply(value) == '[object Array]';
}
function isFile(obj) {
return toString.apply(obj)
=== '[object File]';
}
3)(duck type)判断是否有某属性或方法:
function isWindow(obj) {
return obj &&
obj.document && obj.location && obj.alert &&
obj.setInterval;
}
function isScope(obj) {
return obj &&
obj.$evalAsync && obj.$watch;
}
function isElement(node) {
return node &&
(node.nodeName // we are a direct element
|| (node.bind &&
node.find));  // we have a bind and find
method part of jQuery API
}
instanceof
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 类型判断
		直接上例子: 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 类型判断的那些事
		先准备几个变量 var a = "abcde."; var b = 222; var c= [1,2,3]; // 或者 new Array() var d = new Date( ... 
- 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 ... 
随机推荐
- Tomcat8启动报there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
			09-Dec-2016 10:57:49.150 WARNING [localhost-startStop-1] org.apache.catalina.webresources.Cache.getR ... 
- NSFileManager 遍历目录
			NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *documentPath = [NSHomeDirecto ... 
- PRML读书笔记——Mathematical notation
			x, a vector, and all vectors are assumed to be column vectors. M, denote matrices. xT, a row vcetor, ... 
- Leetcode: Number of Boomerangs
			Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of po ... 
- C#.Net   调用方法,给参数赋值的一种技巧
			C#中可以给参数赋值默认值(其实这种写法有点不太好,有时会使方法的功能太复杂了)。 但是往往有多个默认参数时,有的参数需要使用默认值,有的不使用默认值,这时正常的写法就行不通了,解决方法可参照下边的代 ... 
- Wamp 设置 www 目录
			打开httpd.conf,搜索wwwroot 和 directory 直接改为新目录即可. 对于wamp3是无效的,可以这样解决: “You need to change these values a ... 
- Grunt一辈子的好基友:yeoman
			yeoman是什么 yeoman主要包含了三个工具:yo.grunt.bower.我们先看下这三个工具分别是做什么的: yo:脚手架工具,主要作用是创建项目骨架(跟grunt-init有点像). gr ... 
- python:HTML + CSS   优先级  返回顶部
			优先级 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ... 
- 图论$\cdot$最短路问题
			Dijkstra单源最短路径算法 Dijkstra可以计算出发点到每个点的最短路,及单源最短路径(SSSP).这一特点使得Dijkstra常常用来进行其他算法的预处理.用Dijkstra算法计算最短路 ... 
- C中字符串的几种定义方法及说明
			在C中定义字符串有下列几种形式:字符串常量,char数组,char指针 1.字符串常量 即:位于一对双括号中的任何字符.双引号里的字符加上编译器自动提供的结束标志\0字符,作为 一个字符串存储在内存中 ... 
