javascript 数据类型判断总结
一 typeof
回顾:js有五种基本数据类型:值类型("number","string","boolean","undefined") 和引用类型 (“object”),其中“object” 又包含“array,function,null”等数据类型。
typeof 可以判断所有的值类型"number","string","boolean","undefined"和引用类型中的‘function’ 类型,其余所有的引用类型都只能返回‘object’。
typeof 能返回6中数据类型。
type of 1;//"number"
type of 'test';//"string"
type of true;//"boolean"
type of undefined;//"undefined"
type of console.log;//"function"
type of null;//"object"
type of [];//"object"
type of {};//"object"
二 instanceof
优点:可以判断某个对象是否是由某个构造函数new 出来的 ,凡是通过构造函数创建的都能进行判断
例如:
//构造函数假如被当作普通函数直接执行抛出错误
function Person (){
if(!(this instanceof Person)){ // 当Person被直接执行时,this在非严格模式下是指向window的,而被当作构造函数时,this 是指由Person new出来的对象
throw new Error(‘Person为构造函数,请使用 new Person’);
}
}
缺点:不能判断null 类型以及非new 出来的的值类型,不能精确的区分array、function和object
function utility(){
return {
isAarry:(data)=> data instanceof Array,
isFunction:()=> data instanceof Function
}
}
三 Object.prototype.toString
优点:所有的数据类型都能判断
原理:一切皆对象
js 里面还有好多类型判断 [object HTMLDivElement] div 对象 , [object HTMLBodyElement] body 对象 ,object Document或者 [object HTMLDocument](firefox,google) ......各种dom节点的判断,这些东西在我们写插件的时候都会用到。
function utility(){
return {
isArray:(o)=>Object.prototype.toString.call(o) == "[object Array]",
isObj:(o)=>Object.prototype.toString.call(o) == "[object Object]",
isNull:(o)=>Object.prototype.toString.call(o) == "[object Null]",
isFunction:(o)=>Object.prototype.toString.call(o) == "[object Function]",
isDate:(o)=>Object.prototype.toString.call(o) == "[object Date]",
isDocument:(o)=>Object.prototype.toString.call(o) =="[object Document]"|| Object.prototype.toString.call(o) == "[object HTMLDocument]",
isNumber:(o)=>Object.prototype.toString.call(o) == "[object Number]",
isString:(o)=>Object.prototype.toString.call(o) == "[object String]",
isUndefined:(o)=>Object.prototype.toString.call(o) == "[object Undefined]",
isBoolean:(o)=>Object.prototype.toString.call(o) == "[object Boolean]",
}
}
javascript 数据类型判断总结的更多相关文章
- javascript数据类型判断
javascript基本数据类型:原始类型 和 引用类型 原始类型(简单数据类型):String,Number,Boolean,Undefined,Null,Symbol(ES6新增) 引用类型( ...
- 关于 JavaScript 数据类型判断
在 JavaScript 中,有 undefined.null.number.string.boolean 五种基本数据类型,另外,有一种复杂数据类型 object ,类似于 C# 中值类型.引用类型 ...
- JavaScript学习总结(2)——JavaScript数据类型判断
最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧! 一.JS中的数据类型 1.数值型(Number):包括整数. ...
- JavaScript数据类型判断的四种方法
码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14416375.html 本文分享了JavaScript类型判断的四种方法:typeo ...
- JavaScript 数据类型判断
JavaScript 的数据类型分为两类:原始类型(基本类型)和对象类型(引用类型).原始类型包括数字.字符串和布尔值,另外有两个特殊的原始值:null 和 undefined,除此之外的都是对象.对 ...
- javaScript数据类型及判断
ECMAScript数据类型概念: ECMAScript数据类型分为两类:原始类型和对象类型(即基本类型和引用类型): ECMAScript数据类型也可以分为可变类型和不可变类型,数组和对象属于可变类 ...
- Javascript 中的数据类型判断
(迁移自旧博客2017 09 25) typeof 我们常使用typeof来判断数据类型,在常规场景中足以应付数据类型判断的需要: var obj = { name: 'zhangxiang' }; ...
- javascript数据类型的判断
最近看到了很多关于数据类型判断的方法,总结了下 一.javascript的数据类型 js数据分为两种类型:原始数据类型和引用数据类型.原始数据类型有:string.number.boolean.und ...
- 请你讲一讲JavaScript有哪些数据类型, 数据类型判断有哪些方法?
js的8种数据类型 JavaScript中有8种数据类型, 包括基本数据类型(number, string, boolean, null, undefined, symbol, bigint)和引用数 ...
随机推荐
- P3311 [SDOI2014]数数 AC自动机+数位DP
题意 给定一个正整数N和n个模式串,问不大于N的数字中有多少个不包含任意模式串,输出对\(1e^9+7\)取模后的答案. 解题思路 把所有模式串都加入AC自动机,然后跑数位DP就好了.需要注意的是,这 ...
- 用Python写一个向数据库填充数据的小工具
一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...
- 4.FFMPEG-AVFrame
在ffmpeg中,解码前的数据结构体为AVPacket(参考:3.AVPacket使用),而解码后的数据为AVFrame(视频的YUV, RGB, 音频的PCM,数据量更大) 1.AVFrame介绍 ...
- 浅谈Java 线程池原理及使用方式
一.简介 什么是线程池? 池的概念大家也许都有所听闻,池就是相当于一个容器,里面有许许多多的东西你可以即拿即用.java中有线程池.连接池等等.线程池就是在系统启动或者实例化池时创建一些空闲的线程,等 ...
- 复习 | 重温jQuery和Zepto的API
jq和zepto很相似有许多共同的api,zepto也出了很多与jq不一样的api,总的来说,两者更相似,但是zepto更轻量一点,正好公司也在用,复习这两个没错 jq中的zepto的事件和ajax我 ...
- JVM垃圾回收行为的并行与并发
程序的并行和并发 程序的并发(Concurrent) 在操作系统中,是指一个时间段中有几个程序都处于己启动运行到运行完毕之间,且这几个程序都是在同一个处理器_上运行. 并发不是真正意义上的“同时进行” ...
- 最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇)
1. 前言 在爬虫.自动化.数据分析.软件测试.Web 等日常操作中,除 JSON.YAML.XML 外,还有一些数据经常会用到,比如:Mysql.Sqlite.Redis.MongoDB.Memch ...
- CTF-BugKu-WEB-35-41
2020.09.19 go on,今天务必搞定web 经验教训 能运行php标签的扩展名有php4,phtml,phtm,phps,php5等,可以在php被过滤的时候尝试: html请求头中,对内容 ...
- bash运行脚本的几种方式
转载自https://www.jianshu.com/p/ba6efda13e23 转载地址:http://www.jquerycn.cn/a_8354 bash shell 脚本执行的方法有多种,本 ...
- Github 个人首页的 README,这样玩儿~
本文首发于 Ficow Shen's Blog,原文地址: Github 个人首页的 README,这样玩儿~. 内容概览 前言 创建仓库 修改 README 的内容 总结 前言 大家最近有没有发现这 ...