声明提前(变量提升)

javascript在执行代码的时候会将所有使用var声明的变量,放在作用域的顶部集中创建,
赋值留在原地

  1. console.log(a);
  2. var a = 20;
  3. function go(){
  4. console.log("hello world")
  5. }
  6. var b ="good"
  7. 输出结果为:undefined

声明提前的执行代码

  1. var a,b;
  2. console.log(a);
  3. a = 10;
  4. b = "good"
  5. 输出结果为:undefined

在es6中没有声明提前

  1. console.log(a);
  2. let a = 10;
  3. 输出结果报错