let
/*
var 可以重复声明
let 有块级作用域
没有前置功能
不能重复声明
*/
var a=1;
console.log(a);//1
let b=2;
console.log(b);//2
if(a==1){
var z=2;
}
console.log(z);//2
/*if(a1==1){
var z1=2;
}
console.log(z1);//报错 a1 is not defined*/
for (var i = 0; i < 10 ; i++) {
;
}
console.log(i);//10
/*for (let i = 0; i < 10 ; i++) {
;
}
console.log(i);//i is not defined*/
/*function fn(){
let c=1;
console.log(c);//1
}
fn()
console.log(c);//报错*/
console.log(d);
//var d=5;//5
//let d=5;//报错 d is not defined
var d=5;
console.log(5);//5
var d=6;
console.log(6);//6
/*let d=5;
console.log(5);//
let d=6;
console.log(6);//报错 重复声明
*/
const
/*
const 是用来声明常量 不可改变的
命名建议大写 不能重复命名
块级作用域
常量在声明的时候必须赋值 但是值是不可以改变的
*/
var a =2;
a=3;
console.log(a);//3
/*const a =2;
a=3;
console.log(a);//报错 不能给常量赋值*/
const A =2;
console.log(A);//2
/*const a //必须赋值
a=3;
console.log(a);//报错*/
const D=[1,2,3];
D.push(4);//[1,2,3,4]
//D=[1,2,3,4]; 报错
console.log(D);//[1,2,3,4]