During studying JS, the following code is mysterious to me.

The following code never print out 'this is fn'?

I am not sure `fn=null;` is always called first before callback function of 
`setTimtout(..,0)`

```
function fn(){
    console.log('this is fn');
}

var intv = setTimeout( function(){ 
    intv = null;
    if (fn) fn();
}, 0 ); 

fn = null;

```