[关闭]
@2890594972 2017-10-18T04:03:14.000000Z 字数 1235 阅读 780

ES6 10.18

ES6


  1. //var 声明变量
  2. var var_a = 10;
  3. var var_a = 100;
  4. console.log(var_a);//100
  5. //let 声明变量
  6. let let_a = 10;
  7. let let_a = 100;
  8. console.log(let_a);//VM159:2 Uncaught SyntaxError: Identifier 'let_a' has already been declared

let和var的区别1:声明问题

var声明的变量,能重复声明吗?
答:能

let声明的变量,能重复声明吗?
答:不能

let和var的区别2:变量提升问题

  1. if(false){
  2. var var_a = 100;
  3. }
  4. console.log(var_a)//undefined
  5. if(true){
  6. var var_a = 100;
  7. }
  8. console.log(var_a)//100

let和var的区别3:是否支持块级作用域
比如:if,for

  1. if(false){
  2. let let_a = 100;
  3. }
  4. console.log(let_a)//VM161:4 Uncaught ReferenceError: let_a is not defined
  5. if(true){
  6. let let_a = 100;
  7. }
  8. console.log(let_a)//Uncaught ReferenceError: let_a is not defined

let和var的区别4:作用域问题

是否支持函数级作用域
答案:都支持

  1. function demo(){
  2. var v_width = 100
  3. let l_width = 200;
  4. }
  5. //console.log(v_width);
  6. console.log(l_width);

let和var的区别5:是否支持循环变量存储

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <ul>
  11. <li>aa</li>
  12. <li>bb</li>
  13. <li>cc</li>
  14. <li>dd</li>
  15. <li>ee</li>
  16. </ul>
  17. <script>
  18. var lis = document.querySelectorAll('li');
  19. // for(let i=0; i< lis.length; i++){
  20. // lis[i].onclick = function(){
  21. // console.log(i)
  22. // }
  23. // }
  24. for(var i=0; i< lis.length; i++){
  25. //闭包
  26. lis[i].onclick = (function(i){
  27. return function(){
  28. console.log(i)
  29. }
  30. })(i)
  31. }
  32. </script>
  33. </body>
  34. </html>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注