1.变量覆盖

 <button @click="handleClick()">click</button>
methods: {
    handleClick() {
      var number = 1
      var number = 2
      console.log(number);  //2
    },
  },

打印出来的结果是:2

而如果采用let,结果就会大不相同:

 methods: {
    handleClick() {
      let number = 1
      let number = 2
      console.log(number);
    },
  },

结果提示重复声明变量:

 所以如果采用let,就可以帮助我们避免重复声明变量的问题。

2.块级作用域

methods: {
    handleClick() {
      for (var i = 1; i <= 3; i++) {
        console.log("这是第" + i + "个");
      }
      console.log(i);
    },
  },

结果:

 这是因为var没有块级作用域,因此在循环外也可以访问到,如果变成let,结果相应的会变成:

 let具有块级作用域,因此在循环外无法访问到。

更多推荐

为什么不建议用var,代码实测