最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 學(xué)習(xí)筆記之變量及其作用域

 更新時間:2015年01月14日 10:01:58   投稿:hebedich  
前篇文章我們介紹了學(xué)習(xí)javascript所需要的基礎(chǔ)中的基礎(chǔ)知識,今天我們來更進(jìn)一步,學(xué)習(xí)下javascript變量及其作用域,希望小伙伴們通過本文能夠有所得。

一、變量

ECMAscript變量是松散型變量,所謂松散型變量,就是變量名稱可以保存任何類型的數(shù)據(jù),每個變量僅僅是一個用于保存值的占位符。

定義:var firstDemo;

二、變量的作用域

2.1基本概念

使用var 定義變量:定義該變量的作用域的局部變量,這種定義變量的方法也被成為顯式聲明。

這么說不理解的話可以看看下面這個簡單粗暴的例子:

復(fù)制代碼 代碼如下:

test();
function test(){
var firstDemo="hello";//定義局部變量
    alert(firstDemo);//hello
}
 test();
 function test(){
    var firstDemo="hello";//定義局部變量firstDemo           
 }   
 alert(firstDemo);//報錯,firstDemo is not define

由以上兩個例子可以看出,如果在一個函數(shù)中使用var 定義一個變量,那么該變量在函數(shù)退出后會被銷毀。

省略var 定義變量:只要調(diào)用一次定義該變量的函數(shù),全局范圍內(nèi)都可訪問該變量。這種定義變量的方法也被成為隱式聲明

復(fù)制代碼 代碼如下:

 <script type="text/javascript">
        test();
        alert(firstDemo);   //hello
        function test(){
             firstDemo="hello";           
        }       
    </script>

tips:顯式聲明的變量是在預(yù)編譯時就已經(jīng)編譯到調(diào)用對象中了,(例如var t=1;預(yù)編譯時執(zhí)行var t;解釋時執(zhí)行t=1;)不同于隱式聲明變量在解釋時才被定義為全局變量。

弄清楚變量的作用域,可以幫助我們思考如何合理聲明變量,這樣既減小了不必要的內(nèi)存開銷,同時能很大程度地避免變量重復(fù)定義而覆蓋先前定義的變量所造成的麻煩。

2.2作用域分析

復(fù)制代碼 代碼如下:

<script type="text/javascript">
    function demoFunction(s){
        document.writeln(s)
    }
    var i=0; //定義全局變量
    function test(){
        demoFunction(i);
        function innerFunction(){
            var i = 1; //定義局部變量
            demoFunction(i);
        }
        innerFunction();
        demoFunction(i);
   }
   test();   
</script>

輸出結(jié)果:0 1 0

復(fù)制代碼 代碼如下:

<script type="text/javascript">
  function demoFunction(s){
    document.writeln(s)
}
  var i=0;
  function test(){
    demoFunction(i);
    function innerFunction(){
      demoFunction(i);
      var i=1;
    demoFunction(i);
    }
    innerFunction();
    demoFunction(i);
}
test();
</script>

輸出結(jié)果:

A、0 0 1 0

B、0 undefined 1 0

C、0 報錯i is not defined

各位可以猜測一下結(jié)果是哪一個,原因會在留言里詳解。

以上就是本文的全部內(nèi)容了,簡單的說任何程序語言中變量的作用域都是一個很關(guān)鍵的細(xì)節(jié)。JS中變量的作用域相對與JAVA、C這類語言顯得更自由,一個很大的特征就是JS變量沒有塊級作用域,函數(shù)中的變量在整個函數(shù)都中有效。

相關(guān)文章

  • uni-app自定義組件components導(dǎo)入失敗或頁面不顯示文本等解決方法

    uni-app自定義組件components導(dǎo)入失敗或頁面不顯示文本等解決方法

    這篇文章主要給大家介紹了關(guān)于uni-app自定義組件components導(dǎo)入失敗或頁面不顯示文本等的解決方法,眾所周知Uni-app支持使用自定義組件,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • JS裝飾器函數(shù)用法總結(jié)

    JS裝飾器函數(shù)用法總結(jié)

    本篇文章給大家總結(jié)了關(guān)于JS裝飾器函數(shù)的相關(guān)用法以及知識點總結(jié),對此有興趣的朋友參考學(xué)習(xí)下。
    2018-04-04
  • JavaScript中的parse()方法使用簡介

    JavaScript中的parse()方法使用簡介

    這篇文章主要介紹了JavaScript中的parse()方法使用簡介,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • javascript 構(gòu)造函數(shù)方式定義對象

    javascript 構(gòu)造函數(shù)方式定義對象

    這篇文章主要介紹了javascript 構(gòu)造函數(shù)方式定義對象的方法及示例,需要的朋友可以參考下
    2015-01-01
  • 簡述JavaScript中正則表達(dá)式的使用方法

    簡述JavaScript中正則表達(dá)式的使用方法

    這篇文章主要介紹了JavaScript中正則表達(dá)式的使用方法,正則表達(dá)式是JS進(jìn)階學(xué)習(xí)中的重要知識,本文簡述了JS對正則表達(dá)式的支持情況,需要的朋友可以參考下
    2015-06-06
  • 判斷瀏覽器的js代碼

    判斷瀏覽器的js代碼

    判斷瀏覽器的js代碼...
    2007-01-01
  • JavaScript關(guān)鍵字this的用法總結(jié)

    JavaScript關(guān)鍵字this的用法總結(jié)

    這篇文章介紹了JavaScript關(guān)鍵字this的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 詳解Bootstrap 學(xué)習(xí)(一)入門

    詳解Bootstrap 學(xué)習(xí)(一)入門

    這篇文章主要介紹了Bootstrap入門學(xué)習(xí),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 最新評論

    富裕县| 沽源县| 甘孜| 江都市| 平凉市| 宜都市| 乐安县| 伊春市| 宿松县| 屏山县| 天等县| 孟村| 肥东县| 荥经县| 老河口市| 南陵县| 大新县| 黄冈市| 沅陵县| 安福县| 饶平县| 安岳县| 永川市| 合川市| 沂源县| 龙里县| 日照市| 抚顺县| 额济纳旗| 铜陵市| 栾城县| 呼玛县| 黎城县| 道孚县| 长子县| 宜丰县| 安阳市| 吴忠市| 沧州市| 六安市| 阆中市|