ES6变量let,const和var



<!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript"> function test() { var arr=[]; for(var i=0;i<10;i++) { arr[i]=function(){ //每次给arr[i]放一个函数但是内部的i依然是个变量, console.log(i); } } i=100;//如果这里修改了i的值相当于arr中所有函数的i都变成了100; arr[5]();//当调用函数时,才会去找i而这时的i已经变成了100所以输出100 //原因var 是全局的变量 /* var特性:作用域只有方法内和全局 而let有块级域 {{{{{{{{{let a}}}let a}}}}}} {}代表不同的作用域 不同的作用域不冲突 const 相当于是个常量,而是块级属性只在当前域不可变,其他域相当于重新定义 */ } </script> </head> <body> <button onclick="test()">点击控制台输出</button> </body> </html>

  

原文地址:https://www.cnblogs.com/bigfire/p/9518079.html