成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript靜態(tài)作用域和動態(tài)作用域

jimhs / 1372人閱讀

摘要:靜態(tài)作用域指的是一段代碼,在它執(zhí)行之前就已經(jīng)確定了它的作用域,簡單來說就是在執(zhí)行之前就確定了它可以應(yīng)用哪些地方的作用域變量。

靜態(tài)作用域指的是一段代碼,在它執(zhí)行之前就已經(jīng)確定了它的作用域,簡單來說就是在執(zhí)行之前就確定了它可以應(yīng)用哪些地方的作用域(變量)。
動態(tài)作用域–函數(shù)的作用域是在函數(shù)調(diào)用的時(shí)候才決定的

JavaScript采用的是詞法作用域即靜態(tài)作用域;
//  靜態(tài)作用域:
var a = 10;

function fn() {
    var b = 1;
    console.log(a + b);
}

fn(); // 11

在創(chuàng)建fn函數(shù)時(shí)的時(shí)候就已經(jīng)確定了它可以作用哪些變量,如果函數(shù)fn里面有變量a就直接操作變量a,
如果沒有就往上一級查找,這就是靜態(tài)作用域

//  動態(tài)作用域:
function foo() {
    console.log(a);
}

function bar() {
    var a = 3;
    foo();
}

var a = 2;
bar(); // 2;

bar 調(diào)用,bar里面foo被調(diào)用,foo函數(shù)需要查找變量a,由于JavaScript是詞法作用域(即靜態(tài)作用域),foo被解析時(shí)在全局作用域.
所以只能在全局作用域中找a,輸出結(jié)果為2,而非bar作用域中的a。如果js采用的時(shí)動態(tài)作用域,那么foo在bar中調(diào)用,就會先在bar中查詢a,輸出為3。

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/104762.html

相關(guān)文章

  • 深入學(xué)習(xí)js之——詞法作用動態(tài)作用

    摘要:在中的應(yīng)用采用詞法作用域,也就是靜態(tài)作用域。那什么又是詞法作用域或者靜態(tài)作用域呢請繼續(xù)往下看靜態(tài)作用域與動態(tài)作用域因?yàn)椴捎玫氖窃~法作用域函數(shù)的作用域在函數(shù)定義的時(shí)候就決定了。 開篇 當(dāng)我們在開始學(xué)習(xí)任何一門語言的時(shí)候,都會接觸到變量的概念,變量的出現(xiàn)其實(shí)是為了解決一個(gè)問題,為的是存儲某些值,進(jìn)而,存儲某些值的目的是為了在之后對這個(gè)值進(jìn)行訪問或者修改,正是這種存儲和訪問變量的能力將狀態(tài)給...

    shiweifu 評論0 收藏0
  • JavaScript深入之詞法作用動態(tài)作用

    摘要:作用域作用域是指程序源代碼中定義變量的區(qū)域。采用詞法作用域,也就是靜態(tài)作用域。而與詞法作用域相對的是動態(tài)作用域,函數(shù)的作用域是在函數(shù)調(diào)用的時(shí)候才決定的。前面我們已經(jīng)說了,采用的是靜態(tài)作用域,所以這個(gè)例子的結(jié)果是。 JavaScript深入系列的第二篇,JavaScript采用詞法作用域,什么語言采用了動態(tài)作用域?兩者的區(qū)別又是什么?還有一個(gè)略難的思考題,快來看看吧。 作用域 作用域是指...

    gclove 評論0 收藏0
  • js作用this的理解

    摘要:總結(jié)總而言之,作用域在語法分析時(shí)就已經(jīng)處理完啦,的作用域是靜態(tài)作用域,在運(yùn)行時(shí)只是上下文對象在一直發(fā)生變化。 JavaScript 的作用域和上下文對象this 從幾個(gè)有意思的js問題開始 為什么輸出的不是f2? `var scope = top; var f1 = function() { console.log(scope); }; f1(); //...

    李文鵬 評論0 收藏0
  • javascript中關(guān)于作用閉包

    摘要:在代碼執(zhí)行時(shí),對應(yīng)的作用域鏈常常是保持靜態(tài)的。當(dāng)語句執(zhí)行完畢后,會把作用域鏈恢復(fù)到原始狀態(tài)。在全局作用域中創(chuàng)建的函數(shù),其作用域鏈會自動成為全局作用域中的一員。 列表項(xiàng)目 前言 學(xué)習(xí)了javascript已經(jīng)很久了,關(guān)于這個(gè)語言中的這兩個(gè)特性也是早已耳熟能詳,但是在實(shí)際的使用的過程中或者是遇到相關(guān)的問題的時(shí)候,還是不能很好的解決。因此我覺得很有必要深入的學(xué)習(xí)并且記錄這個(gè)問題,以便在今后的...

    zacklee 評論0 收藏0
  • 關(guān)于javascript中的作用作用

    摘要:作用域的類別可以影響到變量的取值,分為詞法作用域靜態(tài)作用域和動態(tài)作用域。而,采用的就是詞法作用域,或者叫靜態(tài)作用域。 關(guān)于javascript中的作用域和作用域鏈 我GitHub上的菜鳥倉庫地址: 點(diǎn)擊跳轉(zhuǎn)查看其他相關(guān)文章 文章在我的博客上的地址: 點(diǎn)擊跳轉(zhuǎn) ? ? ? ? 前面的文章說到, 執(zhí)行上下文的創(chuàng)建階段,主要有三個(gè)內(nèi)容: ? ? ? ? 1、創(chuàng)建變量對象;2、初始化作用域...

    lcodecorex 評論0 收藏0

發(fā)表評論

0條評論

jimhs

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<