es6學習筆記之 let 和 const來源
1.let 命令
es6新增 let
命令, 和 var
的用法相似, 都是用來宣告變數.但是 let 所宣告的變數, 只在 let
命令所在的程式碼塊內有效.
{
let a = 1;
var b = 2;
}
a // ReferenceError: a is not defined
b // 1
複製程式碼
不會存在變數提升的問題
變數提升, 即變數可以在宣告之前使用.值為 undefined
. 為了糾正這種現象, let
命令改變了語法行為, 它所宣告的變數一定要在宣告後使用.
// var
console.log(num); // undefined
var num = 10;
// let
console.log(str); // ReferenceError
let str = 'aa';
複製程式碼
不允許重複宣告
let a = 1;
console.log(a); // 1
let a = 2; // SyntaxError: Identifier 'a' has already been declared
複製程式碼
2.const 命令
const
宣告一個只讀的常量. 一旦被宣告, 常量的值就不能改變
const PI = 3.1415926;
PI // 3.1415926
PI = 3; // TypeError: Assignment to constant variable.
複製程式碼
const
的作用域與 let
命令相同: 只在宣告所在的塊級作用域內有效.
if(true) {
const VAL = 3;
}
VAL // ReferenceError: VAL is not defined
複製程式碼
const
宣告的變數也和 let
一樣不可重複宣告.
var a = 1;
let b = 2;
// 以下都會報錯 SyntaxError: Identifier 'a'|'b' has already been declared
const a = 3;
const b = 4;
複製程式碼