一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - JavaScript 學習筆記之變量及其作用域

JavaScript 學習筆記之變量及其作用域

2021-07-12 17:34JavaScript教程網 JavaScript

前篇文章我們介紹了學習javascript所需要的基礎中的基礎知識,今天我們來更進一步,學習下javascript變量及其作用域,希望小伙伴們通過本文能夠有所得。

一、變量

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

定義:var firstDemo;

二、變量的作用域

2.1基本概念

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

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

 

復制代碼 代碼如下:

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

 

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

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

 

復制代碼 代碼如下:

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

 

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

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

2.2作用域分析

 

復制代碼 代碼如下:

<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>

 

輸出結果:0 1 0

 

復制代碼 代碼如下:

<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>

 

輸出結果:

A、0 0 1 0

B、0 undefined 1 0

C、0 報錯i is not defined

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 催眠 迷j系列小说 | 色视频国产 | 日韩精品视频美在线精品视频 | 91大神大战高跟丝袜美女 | 日本手机在线 | 亚洲成年 | 国产免费资源高清小视频在线观看 | 日本成人高清视频 | 亚洲国产欧美在线看片 | 沉沦艳妇杨幂肉体小说 | 美女被草漫画 | 久久免费特黄毛片 | 高清国产在线 | 消息称老熟妇乱视频一区二区 | 国产亚洲视频在线 | 希望影院高清免费观看视频 | 欧美一级视频免费观看 | 日本人成在线视频免费播放 | 午夜一级视频 | 欧美日韩国产另类一区二区三区 | eee在线播放成人免费 | 视频在线观看高清免费 | 经典三级四虎在线观看 | 99久久国产综合精品麻豆 | 99re这里只有精品在线观看 | 精品在线播放 | 成人在线观看网站 | 十八女下面流水不遮免费 | 午夜视频网站 | 国产成人无精品久久久 | 日本高清va不卡视频在线观看 | 亚洲国产精品网站久久 | 国产亚洲精aa在线观看不卡 | 被老外玩爽的中国美女视频 | 女人国产香蕉久久精品 | 草莓视频深夜释放 | 午夜一区二区三区 | 九九久久国产精品大片 | 免费在线看a | 无遮挡h肉动漫高清在线 | 男人好大好硬好爽免费视频 |