传统var定义变量
可以重复声明
1 | var str="第一次声明"; |
无法限制修改
1 | var str="第一次赋值"; |
没有块级作用域,拥有函数作用域
1 | if(true){ |
变量提升
1 | alert(str); |
自动加入顶部作用域
1 | var str="赋值"; |
ES6之let定义变量
不可重复声明
1 | let str="第一次声明"; |
拥有块级作用域
1 | if(true){ |
不存在变量提升
1 | alert(str); |
不会自动加入顶部作用域
1 | var let="赋值"; |
ES6之const定义常量
不可重复声明
1 | const str="第一次声明"; |
限制修改
1 | const str="第一次赋值"; |
拥有块级作用域
1 | if(true){ |
不存在变量提升
1 | alert(str); |
不会自动加入顶部作用域
1 | var const="赋值"; |