var | let | const(常量不能修改,引用类型可以修改) | |
变量提升 | 有,变量可以在声明之前使用,值为undefined | 没有,必须要先声明才能使用 | |
重复声明 | 能重复声明,后者覆盖前者 | 不允许在相同作用域内,重复声明同一个变量 | |
作用域 | var 的作用域是以函数为界限 | let 和 const 的作用域是块作用域 | |
变量 | 可以定义全局变量和局部变量 | let 和 const 只能定义局部变量 |
目录
var let const 都是用来定义变量的
var
1.声明提升
es6中不再推荐使用var
打印undefined
不叫变量提升(因为根本没有附上值),叫声明提升
步骤:1.声明一个num 2.赋值 没有附上值,所以叫做声明提升
使用let
使用let,这个报错是合理的
2.变量覆盖
应该有提示
使用let
报错合理不能重复定义
3.没有块级作用域
打印:012
打印:3
换成let
报错是合理的
const
1.const定义的变量不能被修改,否则报错
cosnt的值是不能被修改的
换成let
let是可以被修改的
2.声明之后必须赋值,否则报错
3.支持let的其他属性
全局的
let
解构相关
Promise