亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

JavaScript菜鳥教程

JavaScript 對象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥教程

JavaScript 參考手冊

JavaScript 變量作用域

變量的作用域是程序在其中定義的區(qū)域。

JavaScript變量只有兩個作用域:

  • 局部作用域

  • 全局作用域

作用域確定變量的可訪問性(可見性)。

JavaScript 局部變量

在函數(shù)中聲明的變量具有LOCAL(局部)作用域,這意味著無法從該函數(shù)外部調用或操作它們。

// 這里的代碼不能使用cityName
function myFunc() {
  var cityName = "New Delhi";
  
  // 這里的代碼可以使用cityName  
}

// 這里的代碼不能使用cityName
測試看看?/?

局部變量具有函數(shù)作用域,只能從函數(shù)內部訪問它們。

由于局部變量只能在其函數(shù)內部識別,因此具有相同名稱的變量可以在不同的函數(shù)中使用。

函數(shù)啟動時創(chuàng)建局部變量,函數(shù)完成時將局部變量刪除。

JavaScript 全局變量

在函數(shù)外部的程序中聲明的變量具有GLOBAL范圍,這意味著所有腳本都可以使用它們,無論該腳本在函數(shù)內部還是外部。

// 初始化全局變量
var cityName = "New Delhi";

// 這里的代碼能使用cityName

function myFunc() {  
  // 這里的代碼同樣也能使用cityName
}

// 這里的代碼能使用cityName
測試看看?/?

可以從JavaScript程序中的任何位置訪問全局變量。

在下面的示例中,我們將創(chuàng)建一個GLOBAL cityName變量。函數(shù)內部是一個具有相同名稱的LOCAL變量。

// 初始化全局變量
var cityName = "New Delhi";

function myFunc() {
  //初始化局部、函數(shù)范圍內的變量
  var cityName = "Jaipur";
  document.writeln(cityName);
}

//輸出全局變量和局部變量
document.writeln(cityName);
myFunc();
document.writeln(cityName);
測試看看?/?

通過將它們輸出到文檔,我們可以看到變量的值根據(jù)作用域而有所不同,并且原始值沒有更改。

自動全局變量

如果為尚未聲明的變量賦值,它將自動成為GLOBAL(全局)變量。

此示例將聲明全局變量cityName,即使在函數(shù)內部分配了值也是如此。

myFunc();

// 這里的代碼能使用cityName 

function myFunc() {
  cityName = "New Delhi";
}
測試看看?/?

除非有必要,否則不要輕易創(chuàng)建全局變量。

全局變量可以覆蓋窗口變量。

任何函數(shù),包括window對象,都可以覆蓋GLOBAL變量。

var,let和const之間的區(qū)別

JavaScript具有三個不同的關鍵字來聲明變量,這為語言增加了一層復雜性。

兩者之間的差異基于范圍,提升和重新分配。

關鍵詞范圍提升可以重新分配可以重新聲明
var函數(shù)作用域
let塊作用域
const塊作用域

JavaScript 代碼塊作用域

var關鍵字聲明的變量不能具有塊作用域。

{}可以從塊外部訪問在塊內部聲明的變量:

  { 
  var num = 50; 
  }
  // num 能在這里使用

let關鍵字聲明的變量可以具有“塊作用域”。

{}不能從塊外部訪問在塊內部聲明的變量:

  { 
  let num = 50; 
  }
  // num不能在這里使用

聲明變量with constlet涉及塊作用域類似。

  { 
  const num = 50; 
  }
  // num不能在這里使用

常量的值不能通過重新分配而更改,也不能重新聲明。

JavaScript變量的生命周期

JavaScript變量的生命周期從聲明開始。

函數(shù)完成后,將刪除局部變量。

當您關閉瀏覽器窗口時,全局變量將被刪除,但對于加載到同一窗口中的新頁面仍然可用。