var a=100; function a(){ console.log(a); } a();// a is not a function
原来javascript
实际上这段代码等同于java
var a; //函数声明 var a; //变量声明(实际上这里不会重复声明了) a = function(){ console.log(a); }; //函数赋值 a = 100;//变量赋值(给a从新赋值了) a()//a is not a function
而若是代码会以下写法则a方法会执行函数
var a; //函数声明 var a; //变量声明(实际上这里不会重复声明了) a = 100; a=function(){console.log(123)}//函数赋值 a()//123