逃不掉的var、let、const学习

初步认知

基于没有查阅文档以及自己的开发经验对于这三者的认知如下

  1. 三者都是用于声明变量,const最好区分,一般用于声明常量,声明后赋值后的变量无法重新进行赋值,(有的面试会问const的对象能否重新赋值,对于整个变量会报错,但是可以重新赋值key和value,这一点接下来会仔细说说)
  2. var是贯穿js的,let和const是es6之后诞生的
  3. let拥有暂时性死区特性,下面会具体展示
  4. var拥有变量提升特性,

以上是仅凭面试功底以及经验暂时想出的,接下来接合代码和文档展开说说

  • var 在函数作用域中声明为局部变量,在 {} 代码块或者全局中声明为全局变量
  • let & const 声明的变量仅在当前作用域中生效
  • var 可以重复声明,letconst 不可重复声明
  • 在全局作用域下,var 声明的变量会成为 window 对象的属性, letconst 不会;
  • 只有 var 声明的变量会自动提升到函数作用域顶部
  • const 声明的变量,声明时必须同时初始化赋值,且不支持修改(可以修改对象内部属性)

你可能感兴趣的:(javascript)