let和const

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]
原文地址:https://www.cnblogs.com/WWWrs/p/7147793.html