相同点:
let,var和const作用类似,都是关键字,用来声明变量
区别:
在ES5中,使用var关键字声明函数作用域。但在循环和判断语句中,var关键字不会生成作用域。
在ES6中,可以使用let和const关键字来声明变量会生成作用域,但const关键字声明的值不可改变。
举个栗子:
① 使用var关键字
for (var i = 0; i < 10; i++) {
}
console.log("i:"+i);
返回结果:i:10
② 使用let关键字
for (let i = 0; i < 10; i++) {
}
console.log("i:"+i);
就会报错: i is not defined
i 没有定义
③ 使用const关键字
const num = 1;
num = 2;
console.log("num:"+num);
会报错:“num” is read-only
num是只读的,不可修改
总结:
var在循环和判断语句中不会生成作用域;
let和const会生成作用域,但const声明的值不可改变;
完毕~