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 ...
随机推荐
- 三大框架-Hibernate
概念 持久化框架 把对象保存到数据库中,对数据的CURD操作 ORM框架 ORM对象关系映射 类<->表 属性<->字段 对象<->表中的记录 实现方法 创建持久化 ...
- 【002: NetBeans 的 代码补全】
在 代码完成中,输入如下内容 q;w;e;r;t;y;u;i;o;p;a;s;d;f;g;h;j;k;z;x;c;v;b;n;m;Q;W;E;R;T;Y;U;I;O;P;A;S;D;F;G;H;J;K ...
- iocp-socket 服务(借鉴别人的,根据自己的需要改的)未完待续
#pragma once #include <WinSock2.h> #include <MSWSock.h> #include <Windows.h> #prag ...
- 配置jsp开发环境
一.安装jdk(http://pan.baidu.com/s/1sjk9a2p) 二.配置java环境变量 安装好后,配置环境变量:计算机——右击——属性——高级系统设置设置——环境变量 系统变量(没 ...
- App.config应用的说明
对访问数据库的链接字符串的封装(MS什么都在封装,弄的我们原来越方(弱)便(智)),好吧,你可以解释说可以方便的更改链接只更改配置,而不用动主程序------隔离(隔离--保护:搞过配电的应该不陌生吧 ...
- 精彩的解释CAP理论的文章
强一致性(Consistency): 更新操作成功并返回客户端完成后,分布式的所有节点在同一时间的数据完全一致. 可用性(Availability):读和写操作都能成功. 分区容错性(Partiti ...
- 《C#编程》课件 - C#基础
声明多维数组• 创建一个多维数组int[,] intMatrix;float[,] floatMatrix;string[,,] strCube;使用new关键字• 必须指定每个维度的大小int[,] ...
- Eclipse建立Maven项目后无法建立src/main/java资源文件夹
在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre就可以了.
- Count Color(线段树+位运算 POJ2777)
Count Color Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 39917 Accepted: 12037 Descrip ...
- Designing a CSS based template
http://veerle-v2.duoh.com/blog/comments/designing_a_css_based_template_part_i/