1. JS 变量提升
也就是可以先使用再声明[第一段代码], 但是初始化不会提前的[第二段代码];
x = 5; console.log(x); var x; // 5
console.log(y); var y = 3; // undefined
fun(3); function fun(x){console.log(x)} //3
fun1(5); var fun1 = function funDemo(y){console.log(x)} // Uncaught TypeError: fun1 is not a function // at <anonymous>:1:1