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