首先我们要清楚的是let和const是ES6新添的两个变量声明的方式
const必须初始化,否则会报错,var let 会输出undefined,不会报错
var a
let b
const c
console.log(a);//undefined
console.log(b);//undefined
console.log(c);//Uncaught SyntaxError: Missing initializer in const declaration
#var 和let区别
##1.作用域
JavaScript 的世界共有两种作用域:全局作用域和方法作用域。
使用 var 声明的变量的作用域是方法作用域,在方法内部定义的变量方法内部都可以访问,let 是块作用域,即其在整个大括号 {} 之内可见
##2.声明前访问
在变量声明之前就访问变量的话,会直接提示 ReferenceError,而不像 var 那样使用默认值 undefined:
#let const 区别
const 和 let 的作用域是一致的,不同的是 const 变量一旦被赋值,就不能重新定义,可以改变数组和对象的值
const obj = {
c:4
}
obj.c=5
console.log(obj);//{c:5}
const arr = [3,4]
arr[1]=5
console.log(arr);//[3,5]
const a = 'abc'
a='bbb'//test.html:21 Uncaught TypeError: Assignment to constant variable.e.