使用var
- 变量提升
- 同一个作用域下会重复声明多个相同名的变量
- 挂载window上
使用let
- 不会 变量提升
- 不会 同一个作用域下会重复声明多个相同名的变量
- 不会 挂载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);