通过我们使用 typeof 来判断参数是不是未定义,比如 typeof abc == 'undefined',但也可通过全等式判断,如 abc === undefined,那么二者的性能如何?
我们写一个简单的测试用例,分别试100万次
var testTypeof = function(abc) {
if (typeof abc == 'undefined') {
abc = 0
}
}
var testEqual = function(abc) {
if (abc === undefined) {
abc = 0
}
}
var count = 1000000
var 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.js 95 5
各个平台测试结果可能不一定,但可看出全等式判断性能要远强于typeof

typeof 方法判断,多了一次typeof 计算