JavaScript作用域

Java魑魅魍魎發表於2018-09-12

JavaScript作用域

 


JavaScript作用域

作用域是可訪問變數的集合。

在JavaScript中,物件和函式同樣也是變數。

在JavaScript中,作用域可訪問變數,物件,函式的集合。

作用域在函式內可以修改。

JavaScript區域性作用域

變數在函式內宣告,變數為區域性變數(區域性作用域)

區域性變數:只能在函式內部訪問。

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <button onclick="myFunction(1,2)">試一試</button>
    <p id="demo"></p>
</body>
<script type="text/javascript">
    function name() {
        //在此處宣告一個變數
        var a = 10;
        //函式內可以呼叫 a
    }
    //此處(函式外)不能呼叫變數 a
  //因為區域性變數只作用於函式內,所以不同的函式可以使用相同名稱的變數名
  //區域性變數在函式開始執行時建立,函式執行完畢後,變數會自動銷燬
</script> </html>

 

 

 

JavaScript全域性變數

變數在函式外定義,即為全域性變數。

全域性變數有全域性作用域,網頁中所有指令碼和函式都可使用。

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <button onclick="myFunction(1,2)">試一試</button>
    <p id="demo"></p>
</body>
<script type="text/javascript">
    /* 在此處宣告一個全域性變數 */
    var a = 10;
    function name() {
        //函式內可以呼叫 a
    }
    //此處也能呼叫變數 a
</script>
</html>

 

 

 

如果變數在函式內沒有宣告(沒有使用var關鍵字宣告)改變數為全域性變數。

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <button onclick="myFunction(1,2)">試一試</button>
    <p id="demo"></p>
</body>
<script type="text/javascript">
    
    function name() {
        /* 在此處宣告一個變數 */
          a = 10;
     /* a沒有使用var關鍵字宣告,則預設為全域性變數 */

    }
    
</script>
</html>    

 

 

 

JavaScript變數生命週期

變數的生命週期在它的宣告時初始化。區域性變數在函式執行完畢後銷燬。全域性變數在頁面關閉後銷燬。

函式引數

函式引數只在函式內起作用,是區域性變數。

HTML中的全域性 變數

在HTML中,全域性變數是window物件,所有資料變數都屬於window物件。

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <button onclick="myFunction(1,2)">試一試</button>
    <p id="demo"></p>
</body>
<script type="text/javascript">
    function name() {
         a = 10;
    }
    //此處可使用window.a呼叫變數 a
</script>
</html>

 

 

 

全域性變數或者函式可以覆蓋window物件的變數或者函式。區域性變數包括window物件,可以覆蓋全域性變數和函式。

在es6中提供了let關鍵字和const關鍵字

let的宣告方式與var相同,用let來代替var宣告變數,就可以把當前變數限制在程式碼塊中。

使用const宣告的是常量,其值一旦被設定便不可被更改。

 

 

 

———————— end ———————–

 

相關文章