學習es6小記

Oct_Scorpio發表於2019-01-02

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;


複製程式碼

相關文章