變量聲明前置與函數(shù)聲明前置

變量聲明前置

變量聲明出現(xiàn)在代碼中的任何位置都會在該代碼執(zhí)行前處理陪捷,這意味著變量可以在聲明之前使用,這個行為叫"hoisting"章鲤,即把在指定作用域內(nèi)聲明的變量提升到函數(shù)或全局代碼的頂部。
聲明變量的作用域限制在其聲明位置的上下文中辐益,而未聲明變量總是全局的,所以總在作用域最開始聲明變量可以使變量的作用域變得清晰脱吱。

示例:
console.log(a);   // undefined
var a  = 1;
console.log(b);  //Referencerror: b is not deined
  • 由上到下執(zhí)行代碼之前智政,解析器會先找到var關(guān)鍵字,找到了var a 箱蝠,就提升var a 并將a初始化為undefined
  • 再由上往下執(zhí)行续捂,讀到console.log(a),控制臺打印出來的就是undefined。
  • 接著給變量a賦值宦搬,如果這個時候在后面加console.log(a)牙瓢,那么控制臺打印出來的就是1.
  • console.log(b),在前面沒有對b進(jìn)行聲明间校,所以報錯一罩。
    變量會在代碼執(zhí)行之前就創(chuàng)建,初始化并賦值undefined
    變量的聲明會提升撇簿,變量的賦值不會提升

函數(shù)聲明前置

使用function關(guān)鍵字可以聲明一個函數(shù)聂渊,他的特征是函數(shù)聲明提升,執(zhí)行代碼之前會讀取函數(shù)聲明四瘫,即聲明不必放在調(diào)用的前面汉嗽,可以放在作用域的任何位置。

a();
function a(){
  console.log(''hello'')
}

以上代碼沒有return找蜜,返回值undefined

a();
function a(){
  return(''hello'')
}

以上代碼返回值''hello''

JS引擎的過程

  • 扎到所有用function聲明的函數(shù)饼暑,在環(huán)境中創(chuàng)建這些函數(shù)
  • 將這些函數(shù)初始化并賦值為function(){}
  • 開始執(zhí)行代碼a()
    函數(shù)提升的優(yōu)先級高于變量提升的優(yōu)先級
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市洗做,隨后出現(xiàn)的幾起案子弓叛,更是在濱河造成了極大的恐慌,老刑警劉巖诚纸,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撰筷,死亡現(xiàn)場離奇詭異,居然都是意外死亡畦徘,警方通過查閱死者的電腦和手機毕籽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來井辆,“玉大人关筒,你說我怎么就攤上這事”保” “怎么了蒸播?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萍肆。 經(jīng)常有香客問我袍榆,道長胀屿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任蜡塌,我火速辦了婚禮碉纳,結(jié)果婚禮上勿负,老公的妹妹穿的比我還像新娘馏艾。我一直安慰自己,他們只是感情好奴愉,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布琅摩。 她就那樣靜靜地躺著,像睡著了一般锭硼。 火紅的嫁衣襯著肌膚如雪房资。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天檀头,我揣著相機與錄音轰异,去河邊找鬼。 笑死暑始,一個胖子當(dāng)著我的面吹牛搭独,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播廊镜,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼牙肝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嗤朴?” 一聲冷哼從身側(cè)響起配椭,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雹姊,沒想到半個月后股缸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡吱雏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年乓序,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坎背。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡替劈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出得滤,到底是詐尸還是另有隱情陨献,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布懂更,位于F島的核電站眨业,受9級特大地震影響急膀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜龄捡,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一卓嫂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧聘殖,春花似錦晨雳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至突照,卻和暖如春帮非,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背讹蘑。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工末盔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人座慰。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓陨舱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親角骤。 傳聞我的和親對象是個殘疾皇子隅忿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容