var 与function的权重浅析

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8     <script>
 9         var foo;
10         // 若是没有下面这一行,foo为函数,若是有得话foo= xx会覆盖掉function foo()
11          foo = 1;
12          function foo(){
13             alert("11")
14         }
15         console.log(typeof foo);
16 
17     </script>
18 </body>
19 </html>

再看一个:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8     <script>
 9         var foo;
10         // 若是没有下面这一行,foo为函数,若是有得话foo= xx会覆盖掉function foo()
11          foo = function (){alert(22)};
12          function foo(){
13             alert("11")
14         }
15         foo()
16 
17     </script>
18 </body>
19 </html>

若var声明了某一个变量(如foo);代码后面被function重新声明,若foo此时没有被赋值,此时foo为函数,如foo被赋值,如(foo=xxxx),foo的函数声明会被覆盖掉

坚持下去就能成功
原文地址:https://www.cnblogs.com/suoking/p/4929088.html