我们通常使用 typeof obj == 'object' 来判断变量是否为对象。但也可通过 obj instanceof Object 来判断,那么二者的性能如何?
我们写一个简单的测试用例,分别试100万次
var testTypeof = function(abc) {if (typeof abc === 'object') {abc = 0}}var testEqual = function(abc) {if (abc instanceof Object) {abc = 0}}var object = function ABC() {}var count = 1000000var date = Date.now()for (var i = 0; i < count; i++) {testTypeof()}console.log(Date.now() - date)var date = Date.now()for (var i = 0; i < count; i++) {testEqual()}console.log(Date.now() - date)
测试结果:
$ node test.js957
结果使用 instance 比 typeof 快近10倍
但使用 instance 与typeof 会有一些不同,比如在判断function类型时:
Date instanceof Object> truetypeof Date> "function"
回复 (0)
微信扫码 立即评论
