var声明的变量在整个区域都是一个
let声明的变量只在局部区域有效。
1 <html> 2 <head> 3 <script> 4 function myfunction1(){ 5 var a=1; 6 if(1){ 7 var a=2; 8 console.log(a); //输出2 9 } 10 console.log(a); //输出2 11 } 12 function myfunction2(){ 13 let a=1; 14 if(1){ 15 let a=2; 16 console.log(a); //输出2 17 } 18 console.log(a); //输出1 19 } 20 </script> 21 </head> 22 <body> 23 <h1 id="h1"> 24 var和let的区别 25 </h1> 26 <p id="p1"> 27 let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。在Function中局部变量推荐使用let变量,避免变量名冲突。 28 </p> 29 <button type="button1" onclick="myfunction1()">函数1执行</button> 30 <button type="button2" onclick="myfunction2()">函数2执行</button> 31 32 </body> 33 </html>
从输出结果可以看出var声明的变量a可以在if中改变他的值,
而let声明的变量a=1,在if中声明的变量a=2是俩个独立的变量。