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

資訊專欄INFORMATION COLUMN

JS作用域

ASCH / 2660人閱讀

摘要:作用域作用讀寫域空間范圍區(qū)域解析器全局變量全局函數(shù)。自上而下函數(shù)域局部變量局部函數(shù)。中使用,自己未定義,在中定義的變量,會(huì)報(bào)錯(cuò)中使用,中定義的變量,可以使用。由里而外沒有塊級(jí)作用域的概念,會(huì)解析里邊的。并添加到當(dāng)前環(huán)境中。

作用域
作用:讀、寫
域:空間、范圍、區(qū)域
----JS解析器-----

script 全局變量、全局函數(shù)?!咀陨隙隆?br>函數(shù)域 局部變量、局部函數(shù)?!咀岳锒狻?/pre>

1)JS的預(yù)解析

找一些東西 【var function 參數(shù)】
1、var a = 1;
找到 var a,設(shè)置成 a = undefined。不讀取后邊的 = 1。
【所有的變量,在正式運(yùn)行代碼之前,都賦值一個(gè)值,undefined】
2、fn1 = function fn1() { alert(2); }
【所有的函數(shù),在正式運(yùn)行代碼之前,都是整個(gè)函數(shù)塊,不運(yùn)行里邊的內(nèi)容】

**預(yù)解析機(jī)制
遇到重名的:只留一個(gè),留下不留上。變量和函數(shù)重名,不論上下,留函數(shù)。

2)逐行解讀代碼
1、alert(a); //undefined
因?yàn)镴S的預(yù)解析中,var a = undefined。
【開始解讀代碼,從JS的預(yù)解析中去找】
2、var a = 1; //通過表達(dá)式將a變成1
表達(dá)式: = - + * / % ++ -- ! 參數(shù)
【能改變值得都是表達(dá)式,表達(dá)式能修改預(yù)解析的值】
3、function fn1(){} //函數(shù),沒被調(diào)用,不會(huì)執(zhí)行內(nèi)部代碼


//script 自上而下,執(zhí)行完script1,再執(zhí)行script2。
//script1中使用,自己未定義,在script2中定義的變量,會(huì)報(bào)錯(cuò)
//script2中使用,script1中定義的變量,可以使用。

1、script預(yù)解析【var function 參數(shù)】
var a = undefined
function fn1(){}
2、逐行解讀代碼
var a = 1; //表達(dá)式
function fn1(){} //不執(zhí)行
fn1() //函數(shù)調(diào)用
2.1 預(yù)解析 【var function 參數(shù)】
2.2逐行解讀代碼
3、繼續(xù)逐行解讀全局代碼

function(){} //運(yùn)行由里到外
作用域鏈
子級(jí)作用域(函數(shù))沒有找到 【var function 參數(shù)】,回到父級(jí)作用域找到【var function 參數(shù)】
逐行解析代碼,執(zhí)行表達(dá)式會(huì)更改 父級(jí)【var function 參數(shù)】內(nèi)容

子級(jí)作用域(函數(shù))找到【參數(shù)】,進(jìn)行預(yù)解析 = var 參數(shù)(局部變量)

1、有傳參的情況下,會(huì)默認(rèn)在子級(jí)函數(shù)作用域,解析 var a = undefined
2、逐行解讀代碼
var = 參數(shù) //執(zhí)行表達(dá)式,不傳參就是undefined
alert(a) //1 先在當(dāng)前作用域找a,如果有就直接使用,如果沒有就去父級(jí)作用域找。【由里而外】

JS沒有塊級(jí)作用域的概念,會(huì)解析if(){} for(){}里邊的var。并添加到當(dāng)前環(huán)境中。不會(huì)被銷毀
FF不能對(duì)if(){}, for(){} 里邊f(xié)unction進(jìn)行預(yù)解析,兼容性

在子級(jí)作用域中,使用匿名變量,會(huì)加載到全局作用域中。

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

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

相關(guān)文章

  • js閉包的本質(zhì)

    摘要:也正因?yàn)檫@個(gè)閉包的特性,閉包函數(shù)可以讓父函數(shù)的數(shù)據(jù)一直駐留在內(nèi)存中保存,從而這也是后來模塊化的基礎(chǔ)。只有閉包函數(shù),可以讓它的父函數(shù)作用域永恒,像全局作用域,一直在內(nèi)存中存在。的本質(zhì)就是如此,每個(gè)模塊文件就是一個(gè)大閉包。 為什么會(huì)有閉包 js之所以會(huì)有閉包,是因?yàn)閖s不同于其他規(guī)范的語言,js允許一個(gè)函數(shù)中再嵌套子函數(shù),正是因?yàn)檫@種允許函數(shù)嵌套,導(dǎo)致js出現(xiàn)了所謂閉包。 function...

    qianfeng 評(píng)論0 收藏0
  • JavaScript之變量及作用

    摘要:所以的作用域是靜態(tài)作用域,也叫詞法作用域??偨Y(jié)是一門基于詞法作用域靜態(tài)作用域的語言,會(huì)沿著作用域鏈像氣泡一樣向外部尋找變量聲明。又是函數(shù)作用域的語言,在中,使用和關(guān)鍵字后,能讓變量處于塊作用域中,而且不存在聲明提升。 本文共 1700 字,讀完只需 7 分鐘 概述 變量,編程語言中我們用來模擬現(xiàn)實(shí)概念的工具,比方說,變量可以表示對(duì)象,數(shù)組,數(shù)字,字符。既然是工具,那么就用工具的適用范圍...

    Faremax 評(píng)論0 收藏0
  • Js基礎(chǔ)知識(shí)(三) - 作用與閉包

    摘要:是詞法作用域工作模式。使用可以將變量綁定在所在的任意作用域中通常是內(nèi)部,也就是說為其聲明的變量隱式的劫持了所在的塊級(jí)作用域。 作用域與閉包 如何用js創(chuàng)建10個(gè)button標(biāo)簽,點(diǎn)擊每個(gè)按鈕時(shí)打印按鈕對(duì)應(yīng)的序號(hào)? 看到上述問題,如果你能看出來這個(gè)問題實(shí)質(zhì)上是考對(duì)作用域的理解,那么恭喜你,這篇文章你可以不用看了,說明你對(duì)作用域已經(jīng)理解的很透徹了,但是如果你看不出來這是一道考作用域的題目,...

    lemanli 評(píng)論0 收藏0
  • Js基礎(chǔ)知識(shí)(三) - 作用與閉包

    摘要:是詞法作用域工作模式。使用可以將變量綁定在所在的任意作用域中通常是內(nèi)部,也就是說為其聲明的變量隱式的劫持了所在的塊級(jí)作用域。 作用域與閉包 如何用js創(chuàng)建10個(gè)button標(biāo)簽,點(diǎn)擊每個(gè)按鈕時(shí)打印按鈕對(duì)應(yīng)的序號(hào)? 看到上述問題,如果你能看出來這個(gè)問題實(shí)質(zhì)上是考對(duì)作用域的理解,那么恭喜你,這篇文章你可以不用看了,說明你對(duì)作用域已經(jīng)理解的很透徹了,但是如果你看不出來這是一道考作用域的題目,...

    XFLY 評(píng)論0 收藏0
  • Js基礎(chǔ)知識(shí)(三) - 作用與閉包

    摘要:是詞法作用域工作模式。使用可以將變量綁定在所在的任意作用域中通常是內(nèi)部,也就是說為其聲明的變量隱式的劫持了所在的塊級(jí)作用域。 作用域與閉包 如何用js創(chuàng)建10個(gè)button標(biāo)簽,點(diǎn)擊每個(gè)按鈕時(shí)打印按鈕對(duì)應(yīng)的序號(hào)? 看到上述問題,如果你能看出來這個(gè)問題實(shí)質(zhì)上是考對(duì)作用域的理解,那么恭喜你,這篇文章你可以不用看了,說明你對(duì)作用域已經(jīng)理解的很透徹了,但是如果你看不出來這是一道考作用域的題目,...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<