摘要:语法参数要检测的对象某个构造函数通过这个运算符我们就可以用来检测真正的数据类型但是如果是的话,好像就没办法解决了呢。
1.typeof操作符返回一个字符串,指示未经计算的操作数的类型。
语法:type opreand 参数: opreand是一个表达式,表示对象或者原始值,其类型将被返回。 描述: 类型 结果 Undefined "undefined" Null "object" Boolean "boolean" Number "number" String "string" Symbol(ECMAScript 6 新增) "symbol" 函数对象 "function" 任何其他对象 "object"
2.typeof 对于一些特殊数据时的表现
typeof (new Number(1)); //结果并不是想象中的"number"而是"object" typeof (new String("hello")); //同理结果仍然是"object" tyoeof (new Boolean(true)); //返回"object" typeof null; //返回也为"object"
3.instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。
语法:object instanceof constructor 参数:object 要检测的对象 constructor 某个构造函数 通过这个运算符我们就可以用来检测object真正的数据类型 (new Number(1)); instanceof Number //true (new Array("2,3")); instanceof Array //true (new String("hello")); instanceof String //true 但是如果是null的话,好像就没办法解决了呢。我们可以提前使用对象的toString方法判断是否为null
4.更好的做法是借用Object.prototype.toString
Object.prototype.toString.call(1); // "[object Number]" Object.prototype.toString.call(new Number(1)); // "[object Number]" Object.prototype.toString.call("hello"); // "[object String]" Object.prototype.toString.call(function(){}); // "[object function]" Object.prototype.toString.call(null); // "[object Null]"
所以我们可以封装一个利用Object.prototype.toString来判断数据类型的函数。
function classOf(obj) { return Object.prototype.toString.call(obj).slice(8, -1); }; classOf(null); //"Null"
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/83394.html
摘要:首先,说下工厂函数。应对某些场景,工厂函数并不能满足我们,如我需要判断树是不是动物类型你会发现你并没办法。这时候构造函数就出现了我的性别是猴子母猴子我的性别是母跟工厂函数很像,只是没有了创建对象和,并且都用添加属性。 首先,说下工厂函数。顾名思义,就好比一个工厂一样,可以批量制造某种类型的东西。其实说白了就是封装了个方法减少重复工作,相信稍微有点码龄的人都懂。上代码: function...
摘要:响应式原理之之前简单介绍了和类的代码和作用,现在来介绍一下类和。对于数组,响应式的实现稍有不同。不存在时,说明不是响应式数据,直接更新。如果对象是响应式的,确保删除能触发更新视图。 Vue响应式原理之Observer 之前简单介绍了Dep和Watcher类的代码和作用,现在来介绍一下Observer类和set/get。在Vue实例后再添加响应式数据时需要借助Vue.set/vm.$se...
摘要:浅析的特点之一就是响应式,但数据更新时,并不会立即更新。尽管已经更新,但新增的元素并不立即插入到中。实际在中,执行了,这也是自动绑定到执行上下文的原因。在内,使用数组保存回调函数,表示当前状态,使用函数来执行回调队列。 Vue.nextTick 浅析 Vue 的特点之一就是响应式,但数据更新时,DOM 并不会立即更新。当我们有一个业务场景,需要在 DOM 更新之后再执行一段代码时,可以...
摘要:一直很奇怪为什么可以通过判断各数据的类型,带着这个疑问,查看了一些资料。与是两个不同的方法,他们返回的值是不一样的。需要调用原型对象上的去判断类型 一直很奇怪为什么可以通过Object.prototype.toString()判断各数据的类型,带着这个疑问,查看了一些资料。 1.Object.prototype.toString()判断原理 那么当我们调用这个方法时,具体会做那些操作呢...
阅读 1356·2021-10-09 09:44
阅读 1438·2021-09-28 09:36
阅读 15925·2021-09-22 15:55
阅读 1237·2021-09-22 15:45
阅读 2197·2021-09-02 09:48
阅读 2781·2019-08-29 17:19
阅读 2294·2019-08-29 10:54
阅读 904·2019-08-23 18:40