區別:1、var變數是函數或全域作用域,let和const變數是區塊作用域;2、let和const變數受暫存死區的約束,var變數不受;3、var變數是可指派和宣告的,letr變數是可指派、不可重新宣告的,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中文網其他相關文章!