欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-07 11:37:49
varletconst...

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

var let const
变量 提升 没有提升 没有提升
作用域 只要不是在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
//语法错误:只要是语法错误,代码就没有执行的机会

本文地址:https://blog.csdn.net/lyh1291341482/article/details/107388541

相关标签: javascript