国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 16:14:25
字體:
來源:轉載
供稿:網友
前篇文章我們介紹了學習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變量沒有塊級作用域,函數中的變量在整個函數都中有效。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 潼关县| 漳州市| 双牌县| 吉安市| 壤塘县| 张家港市| 山阳县| 嘉定区| 禄丰县| 灵台县| 马关县| 永登县| 阿克苏市| 台中县| 麟游县| 称多县| 洛扎县| 监利县| 黎城县| 酒泉市| 普陀区| 郓城县| 乐清市| 德令哈市| 尚义县| 紫阳县| 曲松县| 灌南县| 天台县| 陈巴尔虎旗| 景谷| 阳城县| 梓潼县| 盐山县| 庄河市| 宜兰市| 尤溪县| 新蔡县| 夏邑县| 滁州市| 徐汇区|