摘要:话不多说,我们开干,加油干货满满今天,我们一起学习一下中的数据类型检测相关的知识,也顺便做个总结。基本数据类型又包括,还有一个新增的,我们这先不说。
欢迎访问我的个人博客:http://www.xiaolongwu.cn
前言最近工作有点忙,好几天都没更新技术博客了。
周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件。
话不多说,我们开干,加油!
干货满满今天,我们一起学习一下js中的数据类型检测相关的知识,也顺便做个总结。
1、数据类型介绍我们都知道,在js中分为基本数据类型和复杂数据类型。
基本数据类型又包括 Sting Number Boolean Null Undefined ,还有一个es6新增的Symbol,我们这先不说。
复杂数据类型只有一种,那就是Object。
我们平时见到的数组Array、正则RegExp、时间对象Date、函数Function等都属于Object。
2、如何判断基本数据类型这点想必大家都知道,但是我还是要在这里啰嗦一下。
判断基本数据类型我们可以选择typeof来判断。
这里需要注意就是返回值,他的返回值为小写字母开头的字符串。
//字符串 typeof "leon" // "sting" //整数 typeof 22 // "number" //undefined typeof undefined // "undefined" //Boolean typeof true // "boolean" //Null typeof null // "object" 这为什么是object ? // 因为null表示的是一个空指针,指针表示的是引用型数据,所以返回object //Object typeof [1,2.3] //"object" typeof {a: "ww"} //"object" typeof new Date() //"object" //function typeof function(){} //"function"3、instanceof
instanceof是用来检测引用类型,检测是那种类型的实例。
他的返回值为Boolean值,真为true,否则为false。
不能检测null,会报错。
// 这种检测方式一般不常用 [1, 2] instanceof Array //true ({a: 1}) instanceof Object //true (function(){}) instanceof Function //true4、Constructor
返回结果为构造器,也可以检测自定义类型;
但是不适用于null和undefined。
"leon".constructor == String // true (1234).constructor == Number // true (true).constructor == Boolean // true [1, 2].constructor == Array // true ({name:"leon"}).constructor == Object // true (function(){}).constructor == Function // true
检测自定义类型
function Leon(){} var leon = new Leon(); leon.constructor == Leon; // true5、Object.prototype.toString.call(obj)
这种方式是最权威的,也是很多框架插件中用到的方法,推荐使用;
Object.prototype.toString.call("leon"); //"[object String]" Object.prototype.toString.call(1234); //"[object Number]" Object.prototype.toString.call(true); //"[object Boolean]" Object.prototype.toString.call([1,2,3]); //"[object Array]" Object.prototype.toString.call({name:"leon"}); //"[object Object]" Object.prototype.toString.call(function(){}); //"[object Function]" Object.prototype.toString.call(null); //"[object Null]" Object.prototype.toString.call(undefined); //"[object Undefined]"
实际使用时,可以这么写
var test = Object.prototype.toString.call("leon"); if(test == "[object String]") { console.log("这是个字符串") } //当然我们也可以选择用正则去判断第二个单词,从而得到数据的类型
github文章资源地址:js基础--数据类型检测的相关知识
我的CSDN博客地址:https://blog.csdn.net/wxl1555
如果您对我的博客内容有疑惑或质疑的地方,请在下方评论区留言,或邮件给我,共同学习进步。
邮箱:wuxiaolong802@163.com
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/109093.html
摘要:的语言的动态性意味着我们可以使用以上种数据类型表示变换过渡动画实现案例前端掘金以下所有效果的实现方式均为个人见解,如有不对的地方还请一一指出。 读 zepto 源码之工具函数 - 掘金Zepto 提供了丰富的工具函数,下面来一一解读。 源码版本 本文阅读的源码为 zepto1.2.0 $.extend $.extend 方法可以用来扩展目标对象的属性。目标对象的同名属性会被源对象的属性...
阅读 549·2021-11-25 09:44
阅读 2635·2021-11-24 09:39
阅读 2304·2021-11-22 15:29
阅读 3519·2021-11-15 11:37
阅读 3379·2021-09-24 10:36
阅读 2507·2021-09-04 16:41
阅读 991·2021-09-03 10:28
阅读 1831·2019-08-30 15:55