摘要:判断变量类型数据类型种操作符可能返回的值如下注意的能力有限,其对于类型返回的都是使用场景区分对象和原始类型要区分一种对象类型和另一种对象类型可以使用运算符或对象属性运算符用法左边的运算数是一个右边运算数是对象类的名字或者构造函数返回或如果是
判断变量类型
typeof操作符javaSctipt数据类型7种: Number, String, Boolean, Null, Undefined, Object, Symbol
可能返回的值如下
undefined
boolean
string
number
object
function
注意: typeof 的能力有限,其对于null, Date、RegExp类型返回的都是"object"
typeof null // "object" typeof {}; // "object" typeof []; // "object" typeof new Date(); // "object"
使用场景:区分对象和原始类型,要区分一种对象类型和另一种对象类型,可以使用: instanceof运算符或对象contructor属性
instanceof运算符用法: 左边的运算数是一个object,右边运算数是对象类的名字或者构造函数;返回true或false
[] instanceof Array; // true [] instanceof Object; // true [] instanceof RegExp; // false new Date instanceof Date; // true
如果object是class或者构造函数的实例,则返回true,如果不是或者是null也返回false
instanceof运算符判断是否为数组类型
function isArray(arr){ return arr instanceof Array; }contructor属性
所有的对象都有一个constructor属性,指向该对象的基本对啊性构造函数类型的属性
var a = new Array; a.constructor === Array // true var n = new Number(3); n.constructor === Number; // true
判断为数组还可以这样
function isArray(arr){ return typeof arr === "object" && arr.constructor === Array; }Object.ProtoType.toString()
每个对象都有一个toString()方法,返回"[object type]",其中type是对象的类型
当执行该方法时,执行以下步骤
1,获取对象的class属性
2,连接字符串 "[object "+结果1+"]" ;
所以可以通过toString()来获取每个对象的类型,为了每个对象都可以通过Object.protoType.toString()来检测,需要以Funciton.prototype.call()或Function.prototype.apply()的形式来调用,传递要检查的对象作为第一个参数,称为thisArg
Object.prototype.toString.call(new Date); // "[object Date]" Object.prototype.toString.call([]); // "[object Array]" Object.prototype.toString.call(/reg/ig); // "[object RegExp]"参考
JavaScript中判断对象类型的几种方法总结
Aboutgithub
blog
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/90065.html
摘要:类型转换和表示一个空对象。如果有其他类型想转换为或者类型,直接赋值就可以了。都能隐式的把数据类型转为类型。。。时间时间二数字类型转换为字符串默认是进制是一个对象类型,所以其他类型转化为通常都是。 前言 javaScript是一门可以自由进行数据类型转换的编程语言,类型转换是javaScript很重要的特色(坑点很多!!!),大家想以后写出更多严谨的代码(少出一些莫名其妙的Bug),还是...
摘要:如果有一方是布尔值,则转换为,转换为,再进行判断。等同运算符类型不同返回类型相同如果同为数字字符串则比较值如果同为布尔值,相同则为不同为如果两个操作数同为引用类型,且引用的为同一个对象函数,数组,则相同。 本文主要记录平时开发遇到的知识点和小技巧 相等判断(==) 类型相同: 判断其值是否相同 类型不同: 1. 如果数字和字符串比较, 则字符串会被隐式转换为数字,在做判断。 2....
摘要:引子前不久我建立的技术群里一位问了一个这样的问题,她贴出的代码如下所示执行结果如下所示第一个第二个这是一个令人诧异的结果,为什么第一个弹出框显示的是,而不是呢这种疑惑的原理我描述如下一个页面里直接定义在标签下的变量是全局变量即属于对象的变量 1) 引子 前不久我建立的技术群里一位MM问了一个这样的问题,她贴出的代码如下所示: var a = 1; function hehe...
摘要:进阶期理解中的执行上下文和执行栈进阶期深入之执行上下文栈和变量对象但是今天补充一个知识点某些情况下,调用堆栈中函数调用的数量超出了调用堆栈的实际大小,浏览器会抛出一个错误终止运行。 (关注福利,关注本公众号回复[资料]领取优质前端视频,包括Vue、React、Node源码和实战、面试指导) 本周正式开始前端进阶的第一期,本周的主题是调用堆栈,今天是第3天。 本计划一共28期,每期重点攻...
阅读 3065·2023-04-25 18:54
阅读 2590·2021-11-02 14:40
阅读 3174·2021-09-23 11:58
阅读 2424·2019-08-30 13:50
阅读 1230·2019-08-29 12:46
阅读 3116·2019-08-28 17:51
阅读 678·2019-08-26 11:47
阅读 897·2019-08-23 16:17