点击事件函数里的声明变量

请教各位,为什么声明的变量n为什么不能声明在点击事件函数里,这个要声明在全局作用域才有效果


   <style>
        div{
            width: 100%;
            height: 300px;
            background: #ccc;
            text-align: center;
            line-height: 300px;
            font-size: 40px;
        }
    </style>
</head>
<body>
    <div></div>

    <script>
        var div = document.getElementsByTagName('div')[0];

        div.onmousemove = function () {
            var n = 0;
            console.log(n);
            n++;
            div.innerHTML = n;
        }
    </script>

因为每次移出的时候都重新声明

因为每次onmousemove都会新创建一个n.不是原来的了