2.变量声明

77 阅读1分钟

var

古老的var现在几乎不用了,出于笔记的完整性,还是记录一下,主要包含一下几个特征:

  • 函数级作用域
  • 作用域提升
  • 重复声明不报错
  • 全局声明的变量会成为window的属性
// 作用域提升
function bar() {
	a = '1';
    console.log(a);
    var a;
}
console.log(a) // 此处获取不到a的值,因为`bar`函数可以看成如下的函数变体:
function bar() {
  var a;
  a = '1';
  console.log(a);
}

let

  • 块级作用域
  • 没有提升
  • 不能重复声明
  • 混用varlet声明会报错
  • 全局声明不会成为window属性

const

  • 声明的同时必须初始化
  • 初始化后不能修改
  • 不能修改仅限于常量的引用,对象是可以修改属性值的
  • 不能用于声明会自增的迭代变量 最后一条如下:
 //  不能用const声明,可以用let
 for(const index = 0; index <10; index++) {
   ...
 }