JS中var、let和const之间的区别

JS中var、let和const之间的区别

varletconst
变量提升没有提升没有提升
作用域只要不是在function里就是全局变量配合{}可以形成块级作用域也会形成块级作用域
是否挂在到GO上
是否能重复声明
赋值可以不赋值可以不赋值必须赋值

注意:关于let声明的变量是否提升,也有的说let声明的变量也提升了,只是没有初始化。
声明变量使用let,声明常量使用const,一般不使用var

关于变量

console.log(a);		//cannot access 'a' before initialization
console.log(b);		//cannot access 'b' before initialization
let a = 110;
const b = ;

关于作用域

if(true){
         var a = 110; // 全局变量
         // b和c只能在当前的{}中被访问到 出了块就访问不了
         let b = 666; // let + {} 形成块级作用域
         const c = 111;
     }
     console.log(a);//输出110
     console.log(b); // b is not defined
     console.log(c); //  c is not defined

关于是否挂载在GO中

let a = 110;
console.log(window.a); // undefined 访问一个对象上没有属性,得到的就是undifined
const b = 1;
console.log(window.b); // undefined
var c = 2;
console.log(window.c);//输出2

关于是否能重复声明

 let a = 1;
 let a = 2;
 console.log(a); // Identifier 'a' has already been declared
 
	const a = 1;
   	const a = 2;
 	console.log(a);//Identifier 'a' has already been declared

	var a = 1;
	var a = 2;
	console.log.(a);//输出2

关于赋值

var a;
let b;
const c;
//Uncaught SyntaxError: Missing initializer in const declaration
//语法错误:只要是语法错误,代码就没有执行的机会
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值