Functions Scope in JavaScript
===

In Pro JavaScript with Mootools book I have found the below line  
 
    The scoping rules for function expressions are a bit different from function 
    declarations because they depend on variable scoping. Remember that in 
    JavaScript, the var keyword defines a variable to be scoped locally, and 
    omitting the keyword creates a global variable instead:    

As per my understanding I have written the below code and tried to check this  
 
    var a = function(){ 
       b = function(){ c = function(){ alert("b"); }; };
    };
    alert(typeof a); // Returned me 'function'
    alert(typeof b); // Returned me 'undefined'
    alert(typeof c); // Returned me 'undefined'

And I also tried below  
 
    var a = function(){ 
       var b = function(){ c = function(){ alert("b"); }; };
    };
    alert(typeof a); // Returned me 'function'
    alert(typeof b); // Returned me 'undefined'
    alert(typeof c); // Returned me 'undefined'​​
Could you please explain this to make me understand better. As per my understanding in first block of code b and c should be global variables.. But this is not happening in this case. Even I tried to invoke `a()` before alerts... [Here](http://jsfiddle.net/HJ4vK/) is the fiddle. Please help me on this to understand scope better.