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

資訊專欄INFORMATION COLUMN

javascript之作用域

Cheriselalala / 3042人閱讀

摘要:結(jié)果結(jié)果函數(shù)定義式函數(shù)表達(dá)式結(jié)果預(yù)編譯是以段為處理單元結(jié)果作用域鏈代碼優(yōu)化在標(biāo)識符解析的時候,查找全局變量是最慢的,所以盡量使用局部變量。全局變量的被調(diào)用兩次,查找該變量必須遍歷整個作用域鏈,耗費時間可以把它存儲到局部變量里再使用。

作用域?qū)傩允窃诙x函數(shù)的時候決定的,不是在調(diào)用函數(shù)的時候決定。

JavaScript中的函數(shù)運行在它們被定義的作用域里,而不是它們被執(zhí)行的作用域里。

eg.

var name = "lw";

function alert_1 () {

  alert(name);

}

function alert_2 () {

 var name = "zgm";

 alert_1();

}

alert_2();// 結(jié)果:lw

js的預(yù)編譯:

在一段js代碼執(zhí)行之前,會預(yù)先處理var關(guān)鍵字和function定義式(函數(shù)表達(dá)式和函數(shù)定義式),對于局部變量,變量的值會在真正執(zhí)行的時候計算。

函數(shù)定義注意:函數(shù)定義式和函數(shù)表達(dá)式的不同, 對于函數(shù)定義式, 會將函數(shù)定義提前.而函數(shù)表達(dá)式, 會在執(zhí)行過程中才計算。

eg.

alert(typeof hello);//結(jié)果:function

alert(typeof world);//結(jié)果:undefined

function hello(){ //函數(shù)定義式

   alert("hello");

}

var world=function(){ //函數(shù)表達(dá)式

  alert("world");

}

alert(typeof world);//結(jié)果:function

js預(yù)編譯是以段為處理單元

作用域鏈代碼優(yōu)化在標(biāo)識符解析的時候,查找全局變量是最慢的,所以盡量使用局部變量。

function changeColor(){

  var doc=document;

doc.getElementById("NM").onclick=function(){
    doc.getElementById("AL").style.backgroundColor="red";

  };

}

全局變量document的被調(diào)用兩次,查找該變量必須遍歷整個作用域鏈,耗費時間,可以把它存儲到局部變量里再使用。

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

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

相關(guān)文章

  • JavaScript深入作用

    摘要:下面,讓我們以一個函數(shù)的創(chuàng)建和激活兩個時期來講解作用域鏈?zhǔn)侨绾蝿?chuàng)建和變化的。這時候執(zhí)行上下文的作用域鏈,我們命名為至此,作用域鏈創(chuàng)建完畢。 JavaScript深入系列第五篇,講述作用鏈的創(chuàng)建過程,最后結(jié)合著變量對象,執(zhí)行上下文棧,讓我們一起捋一捋函數(shù)創(chuàng)建和執(zhí)行的過程中到底發(fā)生了什么? 前言 在《JavaScript深入之執(zhí)行上下文?!分兄v到,當(dāng)JavaScript代碼執(zhí)行一段可執(zhí)行代...

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

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

    gclove 評論0 收藏0
  • JavaScript深入執(zhí)行上下文

    摘要:深入系列第七篇,結(jié)合之前所講的四篇文章,以權(quán)威指南的為例,具體講解當(dāng)函數(shù)執(zhí)行的時候,執(zhí)行上下文棧變量對象作用域鏈?zhǔn)侨绾巫兓?。前言在深入之?zhí)行上下文棧中講到,當(dāng)代碼執(zhí)行一段可執(zhí)行代碼時,會創(chuàng)建對應(yīng)的執(zhí)行上下文。 JavaScript深入系列第七篇,結(jié)合之前所講的四篇文章,以權(quán)威指南的demo為例,具體講解當(dāng)函數(shù)執(zhí)行的時候,執(zhí)行上下文棧、變量對象、作用域鏈?zhǔn)侨绾巫兓摹?前言 在《Jav...

    gougoujiang 評論0 收藏0
  • 【進(jìn)階2-3期】JavaScript深入閉包面試題解

    摘要:閉包面試題解由于作用域鏈機制的影響,閉包只能取得內(nèi)部函數(shù)的最后一個值,這引起的一個副作用就是如果內(nèi)部函數(shù)在一個循環(huán)中,那么變量的值始終為最后一個值。 (關(guān)注福利,關(guān)注本公眾號回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實戰(zhàn)、面試指導(dǎo)) 本周正式開始前端進(jìn)階的第二期,本周的主題是作用域閉包,今天是第8天。 本計劃一共28期,每期重點攻克一個面試重難點,如果你還不了...

    alanoddsoff 評論0 收藏0
  • 進(jìn)擊JavaScript(二)詞法作用作用

    摘要:一作用域域表示的就是范圍,即作用域,就是一個名字在什么地方可以使用,什么時候不能使用。概括的說作用域就是一套設(shè)計良好的規(guī)則來存儲變量,并且之后可以方便地找到這些變量。 一、作用域 域表示的就是范圍,即作用域,就是一個名字在什么地方可以使用,什么時候不能使用。想了解更多關(guān)于作用域的問題推薦閱讀《你不知道的JavaScript上卷》第一章(或第一部分),從編譯原理的角度說明什么是作用域。概...

    denson 評論0 收藏0
  • 深入理解 Javascript 作用

    摘要:作用域是門動態(tài)語言,跟不一樣,可以隨意定義全局變量和局部變量,變量會在該作用域下提升,而且沒有塊級作用域。一預(yù)處理作用域解析的作用域只用兩種,一個是全局的,一個是函數(shù)的,也稱為全局作用域和局部作用域局部作用域可以訪問全局作用域。 作用域 JavaScript是門動態(tài)語言,跟Java不一樣,JavaScript可以隨意定義全局變量和局部變量,變量會在該作用域下提升,而且JavaScrip...

    banana_pi 評論0 收藏0

發(fā)表評論

0條評論

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