几种方法: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类型判断的更多相关文章

  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 类型判断

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

  5. javascript类型判断方法

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

  6. javascript类型判断最佳实践

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

  7. JavaScript 类型判断的那些事

    先准备几个变量 var a = "abcde."; var b = 222; var c= [1,2,3]; // 或者 new Array() var d = new Date( ...

  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. Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分

    Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍. ...

  2. Spring MVC Integration,Spring Security

     http://docs.spring.io/spring-security/site/docs/4.2.0.RELEASE/reference/htmlsingle/#authorize-reque ...

  3. 以一则LUA实例说明敏捷开发中“分离构造和使用”原则

    分离构造和使用 构造含义是功能的实现, 此功能是一个定义明确的处理过程, 开放出明确的接口给调用者使用. 则使用者可以直接调用接口进行使用, 但是使用者需要搞清楚, 那些是构造, 那些是使用. 不要再 ...

  4. Apache Commons 工具集

    一.Commons BeanUtils http://jakarta.apache.org/commons/beanutils/index.html 说明:针对Bean的一个工具集.由于Bean往往是 ...

  5. SecureCRT使用小技巧

    SecureCRT使用小技巧  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:高级运维工程师之路 598432640 以前觉得xshell链接工具挺好的,看起来又好耍,图 ...

  6. Scrum 项目1.0

     1.内容: NABCD模型  1.需求   在当今的时代,把钱存进银行确实是比较稳妥的方式,但收益实在少得可怜.因此投资便是一个比较好的方式,当然,在投资前你需要一个软件去帮你直观地显现出各种投资的 ...

  7. Js动态获取iframe子页面的高度总结

    问题的缘由 产品有个评论列表引用的是个iframe,高度不固定于是引发这个总结. 方法1:父级页面获取子级页面的高度 给元素设置高度 这方法是用在父级页面里的,通过获取子级页面的高度给iframe设置 ...

  8. Git 一些关于 Git、Github 的学习资源

    一些关于 Git.Github 的学习资源 昨天浏览 Github 的是时候发现了 Githug 这个游戏,这个游戏用来帮助菜鸟们学习使用 Git 的. Githug is designed to g ...

  9. XML标签

    SQL标签库提供了创建和操作XML文档的标签. 引入语法:<%@ taglib prefix="x" uri="http://java.sun.com/jsp/js ...

  10. window route 命令

    使用 Route 命令行工具查看并编辑计算机的 IP 路由表.Route 命令和语法如下所示: route [-f] [-p] [Command][Destination] [mask Netmask ...