window document区别

DOM 是为了操作文档出现的 API,document 是其的一个对象;

BOM 是为了操作浏览器出现的 API,window 是其的一个对象。

var let 区别 const

  1. let没有变量声明提升
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;

1
2
3
4
5
6
7
8
  1. 在一个作用域内不能声明同一个变量

  2. 块级作用域

function f1() {
  let n = 5;
  if (true) {
    let n = 10;
    console.log(n); // 10 内层的n
  }
  console.log(n); // 5 当前层的n
}

{{{{
  {let insane = 'Hello World'}
  console.log(insane); // 报错 读不到子作用域的变量
}}}};


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  1. 暂时性死区
var tmp = 123; // 声明
if (true) {
  tmp = 'abc'; // 报错 因为本区域有tmp声明变量
  let tmp; // 绑定if这个块级的作用域 不能出现tmp变量
}
1
2
3
4
5

const命令注意点: const 声明之后必须马上赋值,否则会报错