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 ...