1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      JS頁(yè)面獲取session值,作用域和閉包學(xué)習(xí)筆記

      本文實(shí)例講述了JS頁(yè)面獲取 session 值,作用域和閉包。分享給大家供大家參考,具體如下:

      10年的亭湖網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整亭湖建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“亭湖網(wǎng)站設(shè)計(jì)”,“亭湖網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

      Javascript獲取session的值:

      var name= "${sessioScope.變量名}";
      
      

      注意這里面需要使用 "" 把 El 表達(dá)式給括起來(lái),否則就取不到數(shù)據(jù)。

      JSP獲取session的值:

      可以直接${sessionScope.變量名},在標(biāo)簽里也是一樣。

      JSP獲取URL的值:

      var name = "<%=request.getParameter("name")%>";//謹(jǐn)記:在""中的表達(dá)式‘<%= %>'結(jié)尾不能加‘;'號(hào),且只能寫一句。
      var id = ${param.id};//也具有同樣的效果,能用在JS類庫(kù)中的jQuery語(yǔ)法。
      

      在四大作用域中,每一個(gè)作用域的取值方法大同小異,方法與技巧都是一以貫之的。

      下面是關(guān)于作用域和作用鏈的一些筆記:

      作用域(scope):它是指對(duì)某一變量和方法具有訪問權(quán)限的代碼空間,在JS中, 作用域是在函數(shù)中維護(hù)的。表示變量或函數(shù)起作用的區(qū)域,指代了它們?cè)谑裁礃拥纳舷挛闹袌?zhí)行,亦即上下文執(zhí)行環(huán)境。Javascript的作用域只有兩種:全局作用域和本地作用域,本地作用域是按照函數(shù)來(lái)區(qū)分的。

      變量作用域

      在JavaScript中全局變量的作用域比較簡(jiǎn)單,它的作用域是全局的,在代碼的任何地方都是有定義的。然而函數(shù)的參數(shù)和局部變量只在函數(shù)體內(nèi)有定義。另外局部變量的優(yōu)先級(jí)要高于同名的全局變量,也就是說(shuō)當(dāng)局部變量與全局變量重名時(shí),局部變量會(huì)覆蓋全局變量(如下面例子)。

      var num = 1;      //聲明一個(gè)全局變量
      function func() {
        var num = 2;    //聲明一個(gè)局部變量
        return num;
      }
      console.log(num);    //輸出:1
      console.log(func());  //輸出:2
      
      

      注:聲明局部變量時(shí)一定要使用var,否則,解釋器會(huì)將該變量當(dāng)做全局對(duì)象window的屬性。關(guān)于變量的詳細(xì)筆記地址:原生javascript 學(xué)習(xí)之js變量全面了解

      函數(shù)作用域

      在JavaScript中變量的作用域,并非和C、Java等編程語(yǔ)言似得,在變量聲明的代碼段之外是不可見的,我們通常稱為塊級(jí)作用域,然而在JavaScript中使用的是函數(shù)作用域(變量在聲明它們的函數(shù)體以及這個(gè)函數(shù)體嵌套的任意函數(shù)體都是有定義的)。(如下面的例子)

      function func() {
        console.log(num);      //輸出:undefined,而非報(bào)錯(cuò),因?yàn)樽兞縩um在整個(gè)函數(shù)體內(nèi)都是有定義的
        var num = 1;        //聲明num 在整個(gè)函數(shù)體func內(nèi)都有定義
        console.log(num);      //輸出:1
      }
      func();//調(diào)用func函數(shù)
      
      

      注:JavaScript的函數(shù)作用域是指在在函數(shù)內(nèi)聲明的所有變量在函數(shù)體內(nèi)始終是可見的,也就是說(shuō)在函數(shù)體內(nèi)變量聲明之前就已經(jīng)可用了。

      作為屬性的變量:

      當(dāng)聲明一個(gè)全局變量的時(shí)候,實(shí)際上是定義了全局對(duì)象window的一個(gè)屬性。

      var num = 1;      //聲明全變量num
      alert(window.num)    //輸出:1 聲明的全局變量實(shí)際上就是聲明了一個(gè)window對(duì)象的屬性
      
      

      作用域鏈

      在JavaScript中,函數(shù)也是對(duì)象,實(shí)際上,JavaScript里一切都是對(duì)象。函數(shù)對(duì)象和其它對(duì)象一樣,擁有可以通過(guò)代碼訪問的屬性和一系列僅供JavaScript引擎訪問的內(nèi)部屬性。其中一個(gè)內(nèi)部屬性是[[Scope]],該內(nèi)部屬性包含了函數(shù)被創(chuàng)建的作用域中對(duì)象的集合,這個(gè)集合被稱為函數(shù)的作用域鏈,它決定了哪些數(shù)據(jù)能被函數(shù)訪問。

      當(dāng)一個(gè)函數(shù)創(chuàng)建后,它實(shí)際上保存一個(gè)作用域鏈,并且作用域鏈會(huì)被創(chuàng)建此函數(shù)的作用域中可訪問的數(shù)據(jù)對(duì)象填充。例如定義下面這樣一個(gè)函數(shù):

      function func() {
        var num = 1;
        alert(num);
      }
      func();
      
      

      在函數(shù)func創(chuàng)建時(shí),它的作用域鏈中會(huì)填入一個(gè)全局對(duì)象,該全局對(duì)象包含了所有全局變量,如下圖所示(注意:圖片只例舉了全部變量中的一部分):

      JS頁(yè)面獲取 session 值,作用域和閉包學(xué)習(xí)筆記

      函數(shù)add的作用域?qū)?huì)在執(zhí)行時(shí)用到。例如執(zhí)行如下代碼:

      執(zhí)行此函數(shù)時(shí)會(huì)創(chuàng)建一個(gè)稱為"運(yùn)行期上下文(execution context)"(有人稱為運(yùn)行環(huán)境)的內(nèi)部對(duì)象,運(yùn)行期上下文定義了函數(shù)執(zhí)行時(shí)的環(huán)境。每個(gè)運(yùn)行期上下文都有自己的作用域鏈,用于標(biāo)識(shí)符解析,當(dāng)運(yùn)行期上下文被創(chuàng)建時(shí),而它的作用域鏈初始化為當(dāng)前運(yùn)行函數(shù)的[[Scope]]所包含的對(duì)象。

      這些值按照它們出現(xiàn)在函數(shù)中的順序被復(fù)制到運(yùn)行期上下文的作用域鏈中。它們共同組成了一個(gè)新的對(duì)象,叫"活動(dòng)對(duì)象(activation object)",該對(duì)象包含了函數(shù)的所有局部變量、命名參數(shù)、參數(shù)集合以及this,然后此對(duì)象會(huì)被推入作用域鏈的前端,當(dāng)運(yùn)行期上下文被銷毀,活動(dòng)對(duì)象也隨之銷毀。新的作用域鏈如下圖所示:

      JS頁(yè)面獲取 session 值,作用域和閉包學(xué)習(xí)筆記

      閉包學(xué)習(xí)筆記:

      閉包:在js中的我的理解就是把外部的變量引用到函數(shù)內(nèi)部形成一個(gè)完全封閉的函數(shù)體;當(dāng)內(nèi)部函數(shù)在定義它的作用域的外部被引用時(shí),就創(chuàng)建了該內(nèi)部函數(shù)的閉包 ,如果內(nèi)部函數(shù)引用了位于外部函數(shù)的變量,當(dāng)外部函數(shù)調(diào)用完畢后,這些變量在內(nèi)存不會(huì)被釋放,因?yàn)殚]包需要它們。

      所以本質(zhì)上,閉包就是將函數(shù)內(nèi)部和函數(shù)外部連接起來(lái)的一座橋梁。

      用途:閉包可以讀取函數(shù)外部的變量,可以讓變量的值始終保持在內(nèi)存中。

      使用閉包要注意:

      1)由于閉包會(huì)使得函數(shù)中的變量都被保存在內(nèi)存中,內(nèi)存消耗很大,所以不能濫用閉包,否則會(huì)造成網(wǎng)頁(yè)的性能問題,在IE中可能導(dǎo)致內(nèi)存泄露。解決方法是,在退出函數(shù)之前,將不使用的局部變量全部刪除。

      2)閉包會(huì)在父函數(shù)外部,改變父函數(shù)內(nèi)部變量的值。所以,如果你把父函數(shù)當(dāng)作對(duì)象(object)使用,把閉包當(dāng)作它的公用方法(Public Method),把內(nèi)部變量當(dāng)作它的私有屬性(private value),這時(shí)一定要小心,不要隨便改變父函數(shù)內(nèi)部變量的值。

      更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

      希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。


      網(wǎng)頁(yè)題目:JS頁(yè)面獲取session值,作用域和閉包學(xué)習(xí)筆記
      網(wǎng)頁(yè)路徑:http://www.ef60e0e.cn/article/ijdicd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        梨树县| 上饶县| 曲松县| 和静县| 博白县| 鱼台县| 洛宁县| 灵武市| 北海市| 临汾市| 赣州市| 翁牛特旗| 广东省| 渝北区| 宝清县| 宁强县| 南溪县| 湖北省| 金阳县| 望都县| 驻马店市| 鞍山市| 宝鸡市| 定兴县| 东安县| 温泉县| 洛扎县| 嫩江县| 普安县| 寻甸| 扎鲁特旗| 长海县| 西平县| 稻城县| 南昌县| 忻城县| 武平县| 达孜县| 丹江口市| 湖口县| 丹巴县|