var let const區別
阿新 • • 發佈:2020-11-28
var let const的區別
-
var && let
宣告一個變數 var name="tony"
function varTest() { var x = 31; if (true) { var x = 71; // same variable! console.log(x); // 71 } console.log(x); // 71 } function letTest() { let x = 31; if (true) { let x = 71; // different variable console.log(x); // 71 } console.log(x); // 31 }
let 不允許重複宣告一個變數
<script> if (true) { let a; let a; // Uncaught SyntaxError: Identifier 'a' has already been declared } if(true){ var d; var d; //不會報錯 } if (true) { var c; let c; // Uncaught SyntaxError: Identifier 'c' has already been declared } if (true) { let d; var d; // Uncaught SyntaxError: Identifier 'd' has already been declared } </script>
-
const
宣告一個常量,並不是這個常量補課班,而是這個常量不能再次被賦值
<script> /*不會報錯,因為names1指向的地址不變,改變的只是內部資料*/ const names1 = []; names1[0] = 1; names1[1] = 2; names1[2] = 3; names1[3] = 10; console.log(names1); /*出錯,因為變數names2指向的地址不能發生改變,應始終指向[]所在的地址,[1,4]與[6,7]不是同一個地址*/ const names2=[1,4]; names2=[6,7]; //報錯 </script>
-