预编译 js 很奇怪,为什么一个是NAN,一个却能打出来

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

</body>
</html>
<script>
    /*var a = 1;
function show() {
   alert(a*5);
   var a = 2;
   alert(a * 1);
};
show();*/
var a = 1;
function show() {
   alert(a * 2);
};
show();
</script>

 var a = 1; function show() { alert(a*5); var a = 2; alert(a * 1); 
 这个翻译成通俗的就是
 var a=1;
 function show(){
    var a;
        alert(a*5);
        a=2;
        alert(a*1);
 }
 也就是方法内,用的a是局部变量
 var a = 1; function show() { alert(a * 2);}中,因为方法内没有重新定义,默认使用全局变量a

两个a,应该分局部和全局