let和const

使用var

  1. 变量提升
  2. 同一个作用域下会重复声明多个相同名的变量
  3. 挂载window上

使用let

  1. 不会 变量提升
  2. 不会 同一个作用域下会重复声明多个相同名的变量
  3. 不会 挂载window上

声明变量

console.log(a);  // 变量提升
a++;
console.log(a);

var a = 10;
var a = 20;
console.log(a);

var miaov = 10;
console.log(window.miaov);

// let 声明变量
//console.log(ketang);
let ketang = 2000;
/*let ketang = 5000;
console.log(ketang);*/
console.log(window.ketang);

let和闭包

for(let i = 0; i < lis.length; i++) {
    lis[i].onclick = function(){
       alert(i)
   }
  }

const 声明常量 一旦定义给了变量,变量存的值不能变

let a = 30;

a = 'miaov';

var VALUE = 'leo'; // 约定,变量的值不可改,不能重新赋值
VALUE = 10;
console.log(VALUE);

const hello = 'leo';
hello = 'hi'; // Uncaught TypeError: Assignment to constant variable.
console.log(hello);

你可能感兴趣的:(let和const)