JavaScript菜鳥教程

JavaScript 對象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥教程

JavaScript 參考手冊

JavaScript 變量作用域

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

JavaScript變量只有兩個作用域:

  • 局部作用域

  • 全局作用域

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

JavaScript 局部變量

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

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

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

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

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

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

JavaScript 全局變量

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

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

// 這里的代碼能使用cityName

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

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

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

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

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

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

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

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

自動全局變量

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

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

myFunc();

// 這里的代碼能使用cityName 

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

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

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

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

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

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

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

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

JavaScript 代碼塊作用域

var關(guān)鍵字聲明的變量不能具有塊作用域。

{}可以從塊外部訪問在塊內(nèi)部聲明的變量:

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

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

{}不能從塊外部訪問在塊內(nèi)部聲明的變量:

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

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

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

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

JavaScript變量的生命周期

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

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

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

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清