区别1
1.var let用来声明变量
变量就是赋值后可以改变值
2.const用来声明常量
常量就是赋值后不能改变它的值
区别2
const不允许只声明不赋值,一旦声明就必须赋值
例如:
这是错误的写法:
const num;
这是正确的写法:
const num = 1;
区别3
var是函数作用域,let和const是块级作用域。
花括号{}就是块级作用域,函数作用域就是函数里面的内容。
对比:
1.
{
let num = 4;
}
console.log(num);// num is not defined
{
var num = 4;
}
console.log(num); // 4
区别4
var有提升的功能,let和const没有
console.log(a); //undefined
var a = 1;
console.log(a); //a is not defined
let a = 4;
区别5
在最外层的作用域,也就是全局作用域,用var声明的变量,会作为window的一个属性
var a = 4;
function foo(){
var b = 5;
console.log("b=>"+b) // 5
console.log("window.b=>"+window.b) // undefined
console.log("window.a=>"+window.a) // 4
}
foo()
console.log("a=>"+a) // 4
console.log("window.a=>"+window.a) // 4
console.log("window.b=>"+window.b) // undefined
而用let和const声明的变量或常量,并不会作为window的属性