成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

函數(shù)聲明和提升

cppprimer / 2249人閱讀

摘要:但實(shí)際上會(huì)將其看成兩個(gè)聲明和。第二個(gè)賦值聲明會(huì)被留在原地等待執(zhí)行階段。所以,就輸出外面的了函數(shù)聲明和變量聲明都會(huì)被提升。局部變量變量聲明提升局部變量由于函數(shù)體內(nèi)存在變量聲明提升,所以上面代碼實(shí)際運(yùn)行如下

在ES6之前,JavaScript沒有塊級(jí)作用域(一對(duì)花括號(hào){}即為一個(gè)塊級(jí)作用域),只有全局作用域和函數(shù)作用域。變量提升即將變量聲明提升到它所在作用域的最開始的部分

引擎會(huì)在解釋 JavaScript 代碼之前首先對(duì)其進(jìn)行編譯(沒錯(cuò),JavaScript
也是要進(jìn)行編譯的?。?,而編譯階段中的一部分工作就是找到所有聲明,并用合適的作用域?qū)⑺麄冴P(guān)聯(lián)起來(lái),即
包括變量和函數(shù)在內(nèi)的所有聲明都會(huì)在任何代碼被執(zhí)行前首先被處理。

1.引擎在解析 JavaScript 代碼之前首先對(duì)其進(jìn)行編譯。編譯階段中的一部分工作就是找到所有的聲明,并用合適的作用域?qū)⑺鼈冴P(guān)聯(lián)起來(lái);
2.變量和函數(shù)在內(nèi)的所有聲明都會(huì)在任何代碼被執(zhí)行前首先被處理;
3.當(dāng)定義一個(gè) var a = 1; 時(shí),可能會(huì)認(rèn)為這是一個(gè)聲明。但 JavaScript 實(shí)際上會(huì)將其看成兩個(gè)聲明: var a; 和 a = 1; 。第一個(gè)定義聲明是在編譯階段進(jìn)行。第二個(gè)賦值聲明會(huì)被留在原地等待執(zhí)行階段。
**

函數(shù)提升

**
解析器在解析時(shí)對(duì)函數(shù)聲明與函數(shù)表達(dá)式有著不同的優(yōu)先級(jí),實(shí)際上編譯階段函數(shù)聲明會(huì)先于變量被提升,并使其在執(zhí)行任何代碼之前可訪問,函數(shù)表達(dá)式實(shí)際上是變量聲明的一種,因此函數(shù)聲明提升優(yōu)于函數(shù)表達(dá)式

函數(shù)聲明才存在函數(shù)提升

var num = 20;
function test(){  
    console.log(num);    // 20
    num = 10;  //去掉了var 就變成定義了全局變量了
    console.log(num);    // 10
}
test();
console.log(num);    // 10

外面的是全局的。里面的可以訪問它,里面定義的在輸出后面,且不能變量提升。所以,就輸出外面的20了

函數(shù)聲明和變量聲明都會(huì)被提升。但是函數(shù)會(huì)首先被提升,然后才是變量。
局部變量 變量聲明提升

var a= 20;
function numa(){
    console.log(a);    // undefined
    var a= 10;  //局部變量
    console.log(a);    // 10
}
numa();
 

由于函數(shù)體內(nèi)存在變量聲明提升,所以上面代碼實(shí)際運(yùn)行如下:

var a = 20;
function numa(){
    var a;
    console.log(a);    // undefined
    a = 10; 
    console.log(a);    // 10
}
numa();

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/102421.html

相關(guān)文章

  • 變量函數(shù)聲明提升

    摘要:聲明提升變量和函數(shù)聲明提升發(fā)生在預(yù)編譯階段。上面代碼,函數(shù)內(nèi)相當(dāng)于對(duì)全局變量進(jìn)行賦值函數(shù)聲明提升創(chuàng)建函數(shù)有兩種方式,函數(shù)聲明和函數(shù)表達(dá)式,只有函數(shù)聲明存在提升。同時(shí)聲明變量和函數(shù)顯示的是,初步證明的優(yōu)先級(jí)高于。 聲明提升 變量和函數(shù)聲明提升發(fā)生在JavaScript預(yù)編譯階段。 所謂的聲明提升,就是說(shuō)變量或者函數(shù)在聲明的時(shí)候會(huì)被提前到當(dāng)前作用域的頂部,已經(jīng)處于可訪問狀態(tài)。 變量聲明提升...

    FleyX 評(píng)論0 收藏0
  • javascript聲明提升

    摘要:但是碰到聲明提升,這種想法就會(huì)被打破。聲明一個(gè)函數(shù)進(jìn)行相應(yīng)的操作,會(huì)得到函數(shù)聲明提升的結(jié)果。由此可以發(fā)現(xiàn)變量和函數(shù)的聲明都會(huì)被提升在其他代碼的前面執(zhí)行。一個(gè)普通塊內(nèi)部的函數(shù)聲明通常會(huì)被提升到所在的作用域的頂部。的創(chuàng)建初始化和賦值均會(huì)被提升。 Javascript聲明提升 在分析聲明提升之前,我認(rèn)為有必要知道的兩點(diǎn): 一、引擎查詢變量的兩種方式 引擎查詢變量的方式可以分為L(zhǎng)HS和RHS兩...

    evin2016 評(píng)論0 收藏0
  • 淺析JavaScript中的提升

    摘要:代碼在執(zhí)行時(shí)并不完全是由上到下一行一行執(zhí)行的,由此產(chǎn)生了一個(gè)提升的問題。第二個(gè)賦值聲明會(huì)被留在原地等待執(zhí)行階段??梢缘弥瘮?shù)聲明提升的優(yōu)先權(quán)大于普通變量聲明。 JavaScript代碼在執(zhí)行時(shí)并不完全是由上到下一行一行執(zhí)行的,由此產(chǎn)生了一個(gè)提升的問題。 什么是提升 可以簡(jiǎn)單理解為:聲明(變量和函數(shù))都會(huì)被移動(dòng)到各自作用域的最頂端,這個(gè)過程被稱為提升。 具體例子看提升 下面兩個(gè)例子a會(huì)l...

    everfly 評(píng)論0 收藏0
  • 譯: 函數(shù)提升提升面試的相關(guān)問題

    摘要:函數(shù)提升在里有兩種方式創(chuàng)建函數(shù),通過函數(shù)聲明和函數(shù)表達(dá)式。函數(shù)聲明用指定的參數(shù)來(lái)定義函數(shù)。提示不要在中進(jìn)行函數(shù)聲明。問題輸出兩個(gè)都是用函數(shù)聲明的函數(shù),將被提升到的局部作用域頂端。函數(shù)本身將作為函數(shù)聲明在全局范圍內(nèi)提升。 作者關(guān)于提升的話題,總共有兩篇。(后來(lái)又有一個(gè)討論篇),再次搬過來(lái)。水平有限,如果翻譯的不準(zhǔn)確請(qǐng)包涵,并去看原文。下面開始: 這是我之前的關(guān)于提升的文章,標(biāo)題為《用le...

    wuaiqiu 評(píng)論0 收藏0
  • 【6】JavaScript 函數(shù)高級(jí)——執(zhí)行上下文與執(zhí)行上下文棧、變量提升(圖解+典型實(shí)例分析)

    摘要:函數(shù)和變量相比,會(huì)被優(yōu)先提升。這意味著函數(shù)會(huì)被提升到更靠前的位置。僅提升聲明,而不提升初始化。 JavaScript 函數(shù)高級(jí)——執(zhí)行上下文與執(zhí)行上下文棧(圖解+典型實(shí)例分析) 變量提升與函數(shù)提升 變量聲明提升 通過 var 定義(聲明)的變量,在定義語(yǔ)句之前就可以訪問到 值:undefined /* 面試題 : 輸出 undefined */ var a = 3 ...

    niuxiaowei111 評(píng)論0 收藏0
  • 深入理解 js 聲明提升( 尾部有總結(jié) 面試題解析 )

    摘要:要理解函數(shù)的提升行為,讓我們先解析什么是的提升。也就是說(shuō)聲明提升了,賦值還留著原地,等待執(zhí)行。聲明被提升,而包括函數(shù)表達(dá)式的賦值在內(nèi)的賦值操作并不會(huì)提升,而是留在原地等待執(zhí)行。 javaScript自上而下執(zhí)行的順序受到很多新手和部分老手的共識(shí),但是這其實(shí)并不完全正確,這涉及到j(luò)s的編譯過程,這方面我們稍后會(huì)聊到,先考慮下面代碼: window.onload = function(){...

    curlyCheng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<