JavaScript >> Javascript 文檔 >  >> JavaScript

在 JavaScript 中分配變量、全局變量和作用域(let、var、const)

var,const 都是為變量賦值的 JavaScript 語句。

他們的行為可能會有所不同,具體取決於方式和在哪裡 它們在您的代碼中使用 - 請繼續閱讀以了解詳細信息。

JavaScript 中的作用域

當您開始構建更複雜的應用程序時,您會開始看到很多關於 作用域 的討論 .變量的作用域定義了它在您的應用程序中的可用位置。

全局作用域(全局變量)

如果變量在全局 範圍,它在您的應用程序中的任何位置都可用。可以從任何函數或代碼塊調用它除非在所述函數或代碼塊的範圍內有同名變量可用 .

例如:

var myString = "hi!"; // Declaring a global variable

function sayHi(){
    console.log(myString); // Accessing the global variable myString from within a function
}

sayHi(); // Will output "hi!"

模塊範圍

如果你使用 JavaScript 模塊,模塊內的全局變量在它們之外是不可用的。

它們必須導出 從模塊中,然後導入 .然而,這最好留給關於模塊的文章!

功能範圍

函數 範圍意味著一個變量只在給定的函數中可用:

var myString  = "goodbye!"; // Declaring a global variable

function sayHi(){

    var myString = "hi!";// Declaring a function scoped variable for use within this function.

    console.log(myString); // Accessing the function scope variable myString from within a function
}

sayHi(); // Will output "hi!"

塊範圍

範圍是最本地的範圍。塊中聲明的變量({} 中包含的任何代碼 花括號)僅可用於同一組花括號內的代碼。

var myString  = "goodbye!"; // Declaring a global variable

if(true){
    let myString = "hi!";
    console.log(myString); // Will output "hi!" as it is accessing the myString variable in the current block scope
}

console.log(myString); // Will output "goodbye!" as it is outside of the above block, so it reads the global variable

var 聲明變量

使用 var 聲明變量 是老式的 JavaScript 方式。它看起來像這樣:

var myNumber = 3;

var 的範圍

使用 var 在函數之外會使其成為全局變量 .

如果在函數內部使用,該變量將在該函數中可用 - 函數作用域 .

var 的可重新聲明性/不變性

使用 var 聲明的變量 可以重新聲明和更新/更改,所以下面的代碼是可以使用的:

var myNumber = 3;
myNumber = 4;
var myNumber = 5;

使用 let 聲明變量

let myNumber = 3;

的範圍

語句將為當前的塊範圍聲明一個變量 :

let 的可重聲明性/不變性

使用 let 聲明的變量 可以更新,但不能 重新聲明,這樣就OK了:

let myNumber = 3;
myNumber = 4;

..但是,這不行:

let myNumber = 3;
let myNumber = 4;

const 聲明變量

最後,常量 可用於聲明常量

const myNumber = 3;

const 的範圍

喜歡常量 變量是塊範圍的 .

const 的可重聲明性/不變性

使用 const 聲明的變量 不能 被更新 重新聲明。

在一行中聲明多個變量

您可以在一行中使用上述任何語句聲明多個變量:

var myNumber = 3, myString = "Hi!", myBool = false;


Tutorial JavaScript 教程
  1. Hello Vue:Vue 入門快速教程

  2. 在按鈕單擊javascript上增加數組索引

  3. 使用 Exports 對象導出對象

  4. 第一個博客

  5. React Native TypeScript 樣板(2022)

  6. 讓您的網站更適合移動設備的 10 種方法

  7. 如何開始使用 Javascript 中的 WordPress Hooks

  1. 2016年我最喜歡的演講

  2. 我的食譜管理器項目

  3. JavaScript,你從未聽說過的東西(可能):標記循環?

  4. 這些 Rails 應用程序正在過度打包它們的 JavaScript 包

  5. 如何在文件中的 RPi 上的 javascript 之後獲取完整的 html

  6. 二叉搜索樹

  7. 反應與還原 |一個快速的側面項目

  1. 努力編輯

  2. 如何使用語義發布和朋友來控制您的部署和版本控制

  3. 你對 Webhooks 有什麼看法?

  4. AWS Amplify Studio 初學者指南