Using Regular Expressions to Test Variable values

When creating a function in javascript its a good idea to check object the object type(s) of the arguments pasted to function.  Lots of times you end up with code looking like this to do this

if(typeof(foo)=='undefined'|| foo==''){
         ////do something
    }

Earlier this week I ran across Paul Irish's jQuery Anti-Patterns for Performance & Compression.  In there he mentioned using a regular expression to check to see if a variable contains a value.

//from the slide in the presentation
//instead of this 
if(type=='foo'||type==bar){
}
//use this

if(/^(foo|bar)$/.test(type)){
}

That got me thinking, would it the code above be faster even if I added to the regular expression to check the type?  So I crafted a quick exprement. He is my test code

function bar(foo){
    //console.log(typeof(foo));
    console.time('regex');
    	if(/^(\s)*$|^(undefined)+$/.test(foo)){
	   //console.log('regex')
	}
    console.timeEnd('regex');
    console.time('typeof');
    if(typeof(foo)=='undefined'|| foo==''){
         ////console.log('||');
    }
    console.timeEnd('typeof');
    
}
bar('');

Time taken over 50 literations

argument value/type /^(\d)*|(undefined)+$/.test(foo) typeof(foo)=='undefined'|| foo==''
undefined 12ms 10ms
'' 8ms 12ms

As you can see its pretty much a wash when the argument is the undefined. But when when the value is an empty string this method very fast.  Granted that my test has a very small scope, but its enough to convince me that using a regular expression to check the type/value is a good practice.