通过我们使用 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 计算