let 定義變量
特點:
let 定義的變量,不會進行預解析
let 定義的變量,與 forEach() 中的變量類似
每次執行都會定義出一個新的,相互之間不影響的變量
尤其是在循環中,for,forEach,for...in,都最好使用let定義變量
let 不能重復定義變量名稱,一個變量名稱只能定義一次
let 定義的變量,如果是定義在 { } 中,只能在 { } 中被執行被調用
在 { } 之外,是不能被調用執行的
{ } 包括 if switch for forEach for...in while function
let 在不同 { } 中,是不同作用域中定義let 變量
此時,變量的名稱與 其他 { } 中的變量名稱,或者{ }之外的變量名稱,是可以重復
例:
1 //在for循環中,使用let 定義的循環變量 2 for(let j = 0 ; j<= 10 ; j++){} 3 // if判斷中,使用var 定義 變量 4 if(true){ 5 var abc = 'abc'; 6 } 7 // 在if外,只要執行了,就可以調用 8 console.log(abc); 9 // if判斷中,使用let 定義 變量 10 if(true){ 11 let def = 'def'; 12 } 13 // 在if外,即使執行了,也不能調用 14 console.log(def);
const 定義變量
在JavaScript中往往,管const定義的變量,稱為常量
const定義的變量,不能被重復賦值,數據已經定義,不能更改
const定義的變量名稱,也不能重復
const定義在{}中,不能在{}外調用
一般使用 const 定義 對象,數組,函數,引用數據類型
const中存儲的是引用數據類型的地址,只要地址不改變,可以改變數組,對象中的單元存儲的數據
例:
1 // const定義的變量,一旦賦值,不能改變 2 const strstr = 100; 3 // 對const定義的變量,重復賦值,會報錯 4 // strstr = 200; 5 // 定義變量的名稱,不能重復 6 // const strstr = '' 7 if(true){ 8 const sss = 'sss'; 9 console.log(sss); 10 } 11 // console.log(sss); 12 const arr = [1,2,3,4,5,6]; 13 // 給數組中第1個單元,修改存儲的數據 14 // const arr 中存儲的數組的地址是不改變的,可以執行的 15 arr[0] = '北京'; 16 console.log(arr); 17 // 修改對象中,單元存儲的數據,不是修改 obj中存儲的內存地址,是可以執行的 18 const obj = {name:'張三'}; 19 obj.name = '李四'; 20 console.log(obj);
總結:
let 多用於定義 基本數據類型 以及 循環中
const 多用於定義 引用數據類型
特點:定義的變量名稱不能重復
在 { } 和 循環中定義,只能在 { } 和 循環中使用
let會建立獨立的,存儲不同的,相互不沖突數據的變量
const定義的變量,不能重復賦值,不能修改存儲的數據