首頁 >web前端 >js教程 >JavaScript中var、let和const之間有什麼區別?

JavaScript中var、let和const之間有什麼區別?

青灯夜游
青灯夜游原創
2020-12-01 09:47:213150瀏覽

區別:1、var變數是函數或全域作用域,let和const變數是區塊作用域;2、let和const變數受暫存死區的約束,var變數不受;3、var變數是可指派和宣告的,letr變數是可指派、不可重新宣告的,const變數則不可重新指派和宣告。

JavaScript中var、let和const之間有什麼區別?

相關推薦:《javascript影片教學

我們都知道在最新的ES6 中,新加入了兩個用於變數宣告的關鍵字let 和const,那麼這兩個和我們以前經常使用的var 有什麼區別呢?今天我們就來看看吧。

1、const 語句

const 語句用來在JavaScript 中宣告一個變量,該變數遵守以下規則:

  • 是屬於區塊作用域的。

  • 受到「暫存死區」的約束。

  • 它不會在 window 上建立任何全域屬性。

  • 不可重新分配。

  • 不可重新宣告。

const 語句定義的變數不可以修改,而且必須初始化。

const b = 2;//正确
// const b;//错误,必须初始化 
console.log('函数外const定义b:' + b);//有输出值
// b = 5;
// console.log('函数外修改const定义b:' + b);//无法输出

2、var 語句

var 語句用來在JavaScript 中宣告一個變量,該變數遵守以下規則:

  • 作用域範圍是函數作用域或全域作用域的。

  • 不受暫存死區(TDZ)的限制。

  • 它會在 window 上以相同的名稱建立一個全域屬性。

  • 是可重新分配的。

  • 是可重新宣告的。

var定義的變數可以修改,如果不初始化會輸出undefined,不會報錯。

var a = 1;
// var a;//不会报错
console.log('函数外var定义a:' + a);//可以输出a=1
function change(){
a = 4;
console.log('函数内var定义a:' + a);//可以输出a=4
}
change();
console.log('函数调用后var定义a为函数内部修改值:' + a);//可以输出a=4

3、let 語句

let 語句在 JavaScript 中宣告一個變量,該變數遵守以下規則:

  • 屬於區塊作用域。

  • 受到暫存死區的限制。

  • 它不會在 window 上建立任何全域屬性。

  • 是可指派的。

  • 不可重新宣告。

let屬於區塊層級作用域,函數內部使用let定義後,對函數外部無影響。

let c = 3;
console.log('函数外let定义c:' + c);//输出c=3
function change(){
let c = 6;
console.log('函数内let定义c:' + c);//输出c=6
}
change();
console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3

更多程式相關知識,請造訪:程式設計入門! !

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

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