js中的var , const , let的區別

2021-09-02 17:43:17 字數 1788 閱讀 4765

var定義的變數可以進行修改,但是如果在開始的宣告的時候沒有初始化就會輸出undefined,但是不會報錯,同時var定義的變數可以在使用後宣告。

注:使用var宣告的變數會自動被新增到最接近的環境中。在函式內部,最接近的環境就是函式的區域性環境;在with語句中,最接近的環境就是函式環境;如果初始化變數時沒有使用var宣告,改變量會自動被新增到全域性環境

案例如下:

var  a = 1;

var b; //不會報錯

console.log('函式外定義的var 變數為:'+ a);// 可以輸出1

function chang()

change();

console.log("函式條用後var定義的變數的值為:" + a);//可以輸出5

const定義的變數不可以進行修改,而且定義時一定要初始化。

案例如下:

const b = 2;   //正確的

//const c; //錯誤的,會報錯

console.log('函式外const定義的b值為:' + b); //有輸出值,輸出2

//b = 10; //直接報錯

console.log('函式外改變const定義的b之後的值為:' + b); //報錯,無法輸出

let是塊級作用域變數,函式內部使用let定義變數後,對函式外部不影響。let定義的變數必須是先宣告才能使用。

案例如下:

let c = 13;

console.log('函式外let定義c:' + c); //輸出13

function change()

change();

console.log('函式呼叫後let定義c不受函式內部定義影響:' + c); //輸出13

相同點:

不同點:

js重置變數有如下幾條規則:

使用var 關鍵字宣告的變數在任何地方都可以修改

在相同的作用域或者塊級作用於中,不能使用let關鍵字來重置var關鍵字宣告的變數

在相同的作用域或者塊級作用於中,不能使用let關鍵字來重置let關鍵字宣告的變數

在相同的作用域或者塊級作用於中,不能使用var關鍵字來重置let關鍵字宣告的變數

let關鍵字在不同作用域,或不同塊級作用域中是可以重新宣告賦值的

針對重置變數,我們可以通過以下案例驗證上面規則,**如下:

//使用 var 關鍵字宣告的變數在任何地方都可以修改:

var x = 2;

// x 為 2

var x = 3;

// 現在 x 為 3

//在相同的作用域或塊級作用域中,不能使用 let 關鍵字來重置 var 關鍵字宣告的變數:

var x = 2; // 合法

let x = 3; // 不合法

//在相同的作用域或塊級作用域中,不能使用 let 關鍵字來重置 let 關鍵字宣告的變數:

let x = 2; // 合法

let x = 3; // 不合法

//在相同的作用域或塊級作用域中,不能使用 var 關鍵字來重置 let 關鍵字宣告的變數:

let x = 2; // 合法

var x = 3; // 不合法

//let 關鍵字在不同作用域,或不同塊級作用域中是可以重新宣告賦值的:

let x = 2; // 合法

js中的var const let區別

js中const,var,let區別 今天第一次遇到const定義的變數,查閱了相關資料整理了這篇文章。主要內容是 js中三種定義變數的方式const,var,let的區別。1.const定義的變數不可以修改,而且必須初始化。1 const b 2 正確 2 const b 錯誤,必須初始化 3 c...

var const let 三者之間的區別

1.const定義的變數不可以修改,而且必須初始化。1 const b 2 正確2 const b 錯誤,必須初始化 3 console.log 函式外const定義b b 有輸出值4 b 5 5 console.log 函式外修改const定義b b 無法輸出 2.var定義的變數可以修改,如果不...

var const let三者之間的區別

var const let三者之間的區別 1.const定義的變數不可以修改,而且必須初始化。1 const b 2 正確 2 const b 錯誤,必須初始化 3 console.log 函式外const定義b b 有輸出值 4 b 5 5 console.log 函式外修改const定義b b ...