中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

5分鐘掌握var,let和const異同

發布時間:2020-05-30 22:45:38 來源:網絡 閱讀:358 作者:powertoolsteam 欄目:web開發

轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
原文出處:https://dzone.com/articles/javascript-difference-between-var-let-and-const-ke

這個話題對于一些老鳥來說可能根本算不上疑問,但對于新手來說也許除了最常見的var之外,let和const較少使用的機會。

所以在本文中,我將會通過一些例子來為大家介紹如何在Javascript中靈活使用var、let和const這些關鍵字來定義變量,以及這些關鍵字它們之間有什么異同。

如果你懶得看下面的代碼,那我可以先把概念結論說出:

  • var定義的變量可被更改,如果不初始化而直接使用也不會報錯

  • let定義的變量和var類似,但作用域在當前聲明的范圍內

  • const定義的變量只可初始化一次且作用域內不可被更改,使用前必須初始化

下面我將通過示例的形式來詳細為大家介紹它們三者之間的異同:

Var

var用以聲明一個變量,并且同時我們可以在聲明語句中初始化所聲明的變量。

例如:

var a = 10;
  • 變量的聲明,會在代碼被執行之前被處理。

  • var聲明的JavaScript變量,其可用范圍在當前執行上下文。

  • 在函數外聲明的JavaScript變量,其作用范圍是全局。

考慮以下代碼片段:

5分鐘掌握var,let和const異同

function nodeSimplified() {
  var a =10;
  console.log(a);  // 輸出 10
  if(true) {
   var a=20;
   console.log(a); // 輸出 20
  }
  console.log(a);  // 輸出 20
}

5分鐘掌握var,let和const異同

在上面的代碼中,你可以發現,當變量a在if代碼段里被更新時,它的值被全局更新了,因此在經過了if代碼后,被更新的值仍然被保留著。這與其他語言中的全局變量有點類似。但是,在使用這個功能時要非常小心,因為它有可能會覆蓋一個已有的值。

let

let語句在一個塊級范圍里聲明一個局部變量。和var類似,我們可以在聲明時初始化它的值。

例如:

let a = 10;
  • 這個語句允許你創建一個變量,使它的作用范圍被限制在它所在的代碼塊。

  • 它和Java、C#等其他語言的變量類似。

考慮下面的代碼片段:

5分鐘掌握var,let和const異同

function nodeSimplified() {
  let a =10;
  console.log(a);  // output 10
  if(true) {
   let a=20;
   console.log(a); // output 20
  }
  console.log(a);  // output 10
}

5分鐘掌握var,let和const異同

它和大多數語言中我們所見的表現行為是一致的。

function nodeSimplified() {
  let a =10;
  let a =20; // 拋出語法錯誤
  console.log(a); 
}

錯誤信息:"未捕獲的異常:標識符'a'已經被聲明過。" 但如果使用var就沒事:

function nodeSimplified() { 
  var a =10;   
  var a =20;   
  console.log(a);  // 輸出 20 
}

使用let語句,可以很好的維護變量的作用范圍。當使用內部函數時,let語句讓你的代碼更整潔。

我希望上面的例子能幫你更好地理解varlet。如果有任何疑問,請在評論區留言。

const

const語言中的變量只能被賦值一次,然后就不能在被賦值。const語句的作用范圍和let語句一樣。

例如:

const a = 10;
function nodeSimplified() {
  const MY_VARIABLE =10;
  console.log(MY_VARIABLE);  // 輸出 10 
}

照例,命名規范指出我們應該用大寫字母聲明常量。當然,const a = 10 在上面的代碼中會的起到相同的作用。為了讓代碼長期可維護,命名規范還是值得遵守的。

問題:如果給一個const變量重新賦值會發生什么? 考慮下面的代碼:

5分鐘掌握var,let和const異同

function nodeSimplified() {
  const MY_VARIABLE =10;
  console.log(MY_VARIABLE);  // 輸出 10
  MY_VARIABLE =20;           // 拋出類型錯誤
  console.log(MY_VARIABLE); 
}

5分鐘掌握var,let和const異同

錯誤信息:"未捕獲的類型錯誤:給const變量賦值"。

當我們嘗試給已有的const變量賦值時,這段代碼會拋出一個錯誤。

介紹就到此結束,希望這篇短小精悍的文章能夠幫助到各位更好的理解在Javascript中聲明變量時使用不同關鍵字上到底有何異同。


本文是由葡萄城技術開發團隊發布,轉載請注明出處:葡萄城官網

了解開放易用的 Web 生成平臺,請前往活字格Web應用生成平臺

了解可嵌入您系統的在線 Excel,請前往SpreadJS純前端表格控件

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云龙县| 芒康县| 同心县| 赤水市| 襄垣县| 长治县| 揭阳市| 英山县| 清原| 楚雄市| 沂水县| 公主岭市| 东乡| 湖口县| 蒲城县| 上饶市| 西盟| 繁峙县| 漳州市| 日照市| 河源市| 宜良县| 施甸县| 黄冈市| 荥阳市| 铁力市| 昌江| 阿坝县| 乐陵市| 常州市| 镇江市| 沁源县| 谢通门县| 武隆县| 武城县| 二连浩特市| 岢岚县| 新龙县| 二手房| 蒙城县| 左贡县|