首頁  >  文章  >  web前端  >  JavaScript 中 let、const、var 的差別?

JavaScript 中 let、const、var 的差別?

WBOY
WBOY原創
2024-08-13 19:03:51958瀏覽

let, const , var difference in Javascript?

在 JavaScript 中,let、const 和 var 用來聲明變量,但它們在三個方面有所不同:

1。範圍
2.重新分配
3.吊掛

一、適用範圍:

var 是一個函數作用域,意味著我們在函數內的任何位置存取 var 變量,如果我們嘗試在函數外部存取它,它將顯示錯誤 undefined
例:-

function demo(){
  if(true){
    var n = 3;
  }
  console.log(n)
}
console.log(n) //ReferenceError: n is not defined
demo();

letconst 是區塊,表示我們只能在範圍內存取它們,否則會顯示未定義錯誤
例:-

function demo(){
  if(true){
    let n = 3;
    const m = 5;
     console.log(n) // 3
     console.log(m) // 5
  }
  console.log(n) //ReferenceError: n is not defined
  console.log(m) //ReferenceError: n is not defined
}
console.log(n) //ReferenceError: n is not defined
console.log(m) //ReferenceError: n is not defined
demo();

2.重新分配

  • var:可以在其作用域內重新賦值和重新聲明。
  • let:可以重新賦值,但不能在其範圍內重新宣告。
  • const:不能重新分配或重新聲明。變數本身是不可變的,但分配給 const 的物件和陣列仍然可以修改 .

3.吊裝

  • var 被提升,這意味著它在聲明之前就可以訪問,但在程式碼到達初始化變數的行之前,它的值將是未定義的。
  • let 也被提升,但與 var 不同的是,由於“臨時死區”,在聲明之前無法訪問它。
  • const 宣告的變數也會被提升,但必須在宣告時初始化,且無法重新指派。但是,如果變數是物件或數組,則可以修改其內容(例如,在數組中新增或刪除項目)。
// var example
console.log(a); // undefined (due to hoisting)
var a = 10;
console.log(a); // 10

// let example
console.log(b); // ReferenceError: Cannot access 'b' before initialization
let b = 20;
console.log(b); // 20

// const example
const c = 30;
c = 40; // TypeError: Assignment to constant variable

以上是JavaScript 中 let、const、var 的差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn