亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

var a=function(){}和function a(){}有什么區別

function b(){

document.write("aa");

}

var a=function(){

document.write("123");

}


b();

a();



好像沒什么區別

正在回答

4 回答

b();

a();

function b(){

document.write("aa");

}

var a=function(){

document.write("123");

}

這樣再運行一下就有區別了

function b(){} 為函數聲明,程序運行前就已存在;var a = function(){} 為函數表達式,屬于按順序執行,所以a為undefined


9 回復 有任何疑惑可以回復我~
#1

榎目貴音 提問者

非常感謝!簡單易懂!
2016-03-30 回復 有任何疑惑可以回復我~

我剛就遇到這個問題,function a(){}屬于封裝函數,這個可以寫在調用之后,但是var a = function (){}; 這個就必須寫在調用a之前

2 回復 有任何疑惑可以回復我~

簡單的說就是定義一個變量,把函數體傳給變量;就像無論你用var a 還是 a都能被識別一樣,個人觀點

0 回復 有任何疑惑可以回復我~

var a = function() {

? 函數體:

? }:

此時函數體本身作為變量存在,因此在瀏覽器進行執行前處理時并不把他加載在window對象的屬性中,而是在程序執行過程中執行到變量賦值時才加載到window對象的屬性中。

function a () {}

程序執行:按照從上到下的順序執行,

? 一旦用到變量,則變量名存入到堆內存,變量值存入到棧內存,此時內存回收程序員是無法控制的,只能等待瀏覽器回收。

? 一旦執行函數,函數進入到棧內存中,函數的變量被加載到棧內存中,函數執行后,馬上釋放棧內存。


4 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468832    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

var a=function(){}和function a(){}有什么區別

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號