var a=function(){}和function a(){}有什么區(qū)別
function b(){
document.write("aa");
}
var a=function(){
document.write("123");
}
b();
a();
好像沒什么區(qū)別
function b(){
document.write("aa");
}
var a=function(){
document.write("123");
}
b();
a();
好像沒什么區(qū)別
2016-03-30
舉報
2016-03-30
b();
a();
function b(){
document.write("aa");
}
var a=function(){
document.write("123");
}
這樣再運行一下就有區(qū)別了
function b(){} 為函數(shù)聲明,程序運行前就已存在;var a = function(){} 為函數(shù)表達式,屬于按順序執(zhí)行,所以a為undefined
2016-08-17
我剛就遇到這個問題,function a(){}屬于封裝函數(shù),這個可以寫在調(diào)用之后,但是var a = function (){}; 這個就必須寫在調(diào)用a之前
2016-03-30
簡單的說就是定義一個變量,把函數(shù)體傳給變量;就像無論你用var a 還是 a都能被識別一樣,個人觀點
2016-03-30
var a = function() {
? 函數(shù)體:
? }:
此時函數(shù)體本身作為變量存在,因此在瀏覽器進行執(zhí)行前處理時并不把他加載在window對象的屬性中,而是在程序執(zhí)行過程中執(zhí)行到變量賦值時才加載到window對象的屬性中。
function a () {}
程序執(zhí)行:按照從上到下的順序執(zhí)行,
? 一旦用到變量,則變量名存入到堆內(nèi)存,變量值存入到棧內(nèi)存,此時內(nèi)存回收程序員是無法控制的,只能等待瀏覽器回收。
? 一旦執(zhí)行函數(shù),函數(shù)進入到棧內(nèi)存中,函數(shù)的變量被加載到棧內(nèi)存中,函數(shù)執(zhí)行后,馬上釋放棧內(nèi)存。