注:var f = function () {} 和 function f () {} 的区别(有var就有内存)
var f =function(){console.log("有var")}// 声明函数
function f (){}// 未声明函数
console.log(f);// 输出结果: 有var的f函数
-----------------------------------------------------------------
同名声明的变量:赋值的级别高。(同名声明未赋值)
var a =1;// 赋值
var a;// 未赋值
console.log(a);// 输出结果: 1
-----------------------------------------------------------------
声明和未声明的同名变量:后者是重新赋值。(同名未声明赋值)
var a =1;// 声明赋值
a =2;// 未声明变量
console.log(a); // 输出结果: 2
var f =function(){}// 声明赋值
f =function(){console.log("赋值")}// 未声明变量
console.log(f); // 输出结果:function () {console.log("赋值")}